[英]ASP.Net c#, Repeater Itemcommand. I don't delete data
如果在转发器控件中单击“单击”按钮,则删除数据库中的数据但不起作用。 我使用Visiual Studio2013。我的项目ASP.Net网站,并在web.config中使用MasterPage和My Database connectionstring命令。
这是default.aspx.cs文件
static string yol = ConfigurationManager.ConnectionStrings["cs"].ConnectionString;
SqlConnection baglanti = new SqlConnection();
SqlCommand sorgu = new SqlCommand();
SqlDataReader oku;
protected void Page_Load(object sender, EventArgs e)
{
baglanti = new SqlConnection(yol);
sorgu.Connection = baglanti;
baglanti.Open();
if (!Page.IsPostBack)
{
sorgu.CommandText = "select * from blog";
oku = sorgu.ExecuteReader();
haber.DataSource = oku;
haber.DataBind();
oku.Close();
}
baglanti.Close();
}
protected void Repeater1_ItemCommand(object source, RepeaterCommandEventArgs e)
{
baglanti.Open();
if (e.CommandName == "sil")
{
int id = Convert.ToInt32(e.CommandArgument);
sorgu.CommandText = "delete from blog where id=" + id;
sorgu.ExecuteNonQuery();
haber.DataBind();
}
baglanti.Close();
}
Default.aspx文件
<form runat="server">
<asp:Repeater ID="haber" runat="server" OnItemCommand="Repeater1_ItemCommand">
<ItemTemplate>
<li class="mix nature" data-name="Woodstump">
<a href="?<%# Eval("Id") %>"><img src="../img/work1.jpg" alt="" width="150px" height="150px"></a>
<h4> <%# Eval("baslik") %> <br />
<asp:Button ID="Button1" Text="Button" runat="server" CommandName="sil" CommandArgument="<%# Eval("Id") %>" />
</h4>
</li>
</ItemTemplate>
</asp:Repeater>
</form>
编辑:如果我使用此命令CommandArgument="<%# Eval("Id") %>"
,则示例是“服务器标签格式不正确”,如果我使用此命令CommandArgument='<%# Eval("Id") %>'
,不做任何事情但不起作用(不删除数据库中的数据)。
我认为您正在发送参数反转。
更改此:
CommandArgument="sil" CommandName='<%# Eval("Id") %>'
对此:
CommandArgument='<%# Eval("Id") %>' CommandName="sil"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.