C# asp.net如何使用此方法删除当前记录?

C# asp.net如何使用此方法删除当前记录?,c#,asp.net,database,vb.net,C#,Asp.net,Database,Vb.net,Default.aspx:(我在页面上使用数据库表中的数据动态生成表行,该数据库表有两个字段,如您所见:ID和studentname)(顺便说一句,为了示例清晰起见,我从下面的代码中删除了,) 所以,若我的数据库表有两条记录,那个么页面上会生成一个包含两行的表,就像这样,我为每一行创建了一个删除按钮: ---------------- |1 |命名1 |删除行按钮 ---------------- |2 |命名2 |删除行按钮 ---------------- Default.aspx.vb

Default.aspx:(我在页面上使用数据库表中的数据动态生成表行,该数据库表有两个字段,如您所见:
ID
studentname
)(顺便说一句,为了示例清晰起见,我从下面的代码中删除了


所以,若我的数据库表有两条记录,那个么页面上会生成一个包含两行的表,就像这样,我为每一行创建了一个删除按钮:
----------------
|1 |命名1 |删除行按钮
----------------
|2 |命名2 |删除行按钮
----------------

Default.aspx.vb:(命令按钮的代码隐藏)

Dim x作为新连接
受保护的子按钮1\u单击(ByVal a作为对象,
ByVal b作为System.EventArgs)
x、 deleterowclass(“1”)
端接头
connection.vb:(我创建的一个类,我在其中删除记录)

导入System.Data.OleDb
导入系统数据
导入Microsoft.VisualBasic
Dim str As String=“Provider=Microsoft.ACE.OLEDB.12.0;数据源=C:\db1.mdb”
尺寸con作为新的OLEDB连接(str)
公共子deleterowclass(ByVal ID为整数)
con.Open()
将adp调整为新的OLEDB命令(“从表1中删除*,其中ID=“&ID,con”)
adp.ExecuteNonQuery()
con.Close()
端接头

问题: -上面的按钮代码从access数据库中删除一条记录,该记录的ID仅为我指定的“1”:
x.deleterowclass(“1”)

-由于数据库中的每条记录在页面的每一行旁边都创建了一个名为
Button1
的新按钮,我不确定这是一个问题还是解决问题的优势,因为它确实有效

我的问题: 如何通过单击记录旁边的按钮(我指的是页面上的行旁边)来删除记录? 我的想法是也处理ID并将其传递到某个地方,但不幸的是,我不确定如何实现它,我尝试了许多类似这样的参数
OnClick=“Button2\u Click()
,但我失败了,错误消息是:服务器标记的格式不正确



编辑:解决方案:非常感谢atbebtg,下面是VB中相应的代码,以防有人发现它有用

Default.aspx中的按钮代码(与您的答案相同,但我也想把它放在这里):


VB中的OnClick代码:

受保护的子按钮1\u单击(ByVal sender作为对象,ByVal e作为System.EventArgs)
Dim mybutton As Button=DirectCast(发送方,按钮)
x、 deleterowclass(Convert.ToInt32(mybutton.CommandArgument))
端接头

将按钮代码更改为以下内容:

  <asp:Button ID="Button1" runat="server" Text="Delete Row Button" OnClick="Button1_Click" CommandArgument='<%# Eval("MyID") %>'/>

很抱歉,上面是c代码,我不知道vb的语法。但基本上,您希望将发件人强制转换为按钮,并获取按钮的CommandArgument属性以获取当前行的ID。

我不知道,这非常有用,谢谢,我将在回答中添加vb代码。
 protected void Button1_Click(object sender, EventArgs e)
    {
        Button mybutton = (Button)sender;
        deleterowclass(Convert.ToInt32(mybutton.CommandArgument);
    }