我试图从gridview
删除已检查(已选定)的行,但所选行未删除。为什么呢?
//Class-Method
public void DeleteDataRow(string ID)
{
using (SqlCommand xComm = new SqlCommand())
{
Conn.Open();
new SqlCommand("Delete from Costumers Where CID='" + ID + "' ", Conn);
Conn.Close();
}
}
//webform-Method
protected void xbutton_Click(object sender, EventArgs e)
{
foreach (GridViewRow row in GV.Rows)
{
CheckBox C = row.Cells[0].FindControl("Check") as CheckBox;
string ID= row.Cells[1].Text;
if(C.Checked)
{
m.DeleteDataRow(ID);
}
}
GV.DataSource = m.Select();
GV.DataBind();
}
答案 0 :(得分:1)
有错误消息吗?您还在哪里定义Conn
, DeleteDataRow()是否可以访问?
如果是这样,您需要在使用语句中略微定义xComm
。
打开连接后,需要在某些事项中执行查询,例如使用 ExecuteNonQuery 来触发sql语句。见MSDN documentation
public void DeleteDataRow(string ID)
{
using (SqlCommand xComm = new SqlCommand("Delete from Customers Where CID='" + ID + "' ", Conn))
{
Conn.Open();
int result = xComm.ExecuteNonQuery();
Conn.Close();
}
}
需要注意的另一点是,您可能需要查看查询中 Customers 的拼写。