从gridview中删除已检查的行

时间:2015-10-30 17:57:25

标签: c# sql asp.net

我试图从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();
}

1 个答案:

答案 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 的拼写。