-2 c# database sql-server c#-4.0
我正在执行一个命令来擦除DataGridView中的数据但我无法使其工作,我只想选择一行并将其擦除
除了编写一个显示"删除"的按钮,这样当你点击它时,DataGridView中的选定数据将被删除
我真的需要帮助我迷失了
我的表是"人"我的专栏是"ID"
实例
{SqlConnection cn;
SqlCommand cmd;
SqlDataReader dr;
SqlDataAdapter da;
DataTable dt;}
public string Del(int ID)
{
string ouk = "Delete Work";
try
{
cmd = new SqlCommand("Delete From Person Where = ID )", cn);
cmd.ExecuteNonQuery();
}
catch (Exception ex)
{
ouk = "Bad character:" + ex.ToString();
}
return ouk;
}
Run Code Online (Sandbox Code Playgroud)
对于DataGridView上的按钮擦除
private void buttondel_Click(object sender, EventArgs e)
{
MessageBox.Show(c.Del(TBID));
}
Run Code Online (Sandbox Code Playgroud)
问题是您的SQL查询格式错误,并且您没有将ID传递给查询:
"Delete From Person Where = ID )"
Run Code Online (Sandbox Code Playgroud)
缺少等式检查的一侧,并且您有一个意外的结束括号.
您应该更改查询以接受参数:
"Delete From Person Where ID = @id"
Run Code Online (Sandbox Code Playgroud)
然后将参数传递给您的命令:
cmd.Parameters.Add("@id", SqlDbType.Int).Value = ID;
Run Code Online (Sandbox Code Playgroud)
所以它变成:
try
{
using (cmd = new SqlCommand("Delete From Person Where ID = @id", cn))
{
cmd.Parameters.Add("@id", SqlDbType.Int).Value = ID;
cmd.ExecuteNonQuery();
}
}
catch (Exception ex)
{
ouk = "Bad character:" + ex.ToString();
}
Run Code Online (Sandbox Code Playgroud)
我已经冒昧地将SqlCommand包装在一个using语句中,以便在我们完成它之后将其处理掉.
| 归档时间: |
|
| 查看次数: |
2044 次 |
| 最近记录: |