C# SQL Delete语句不能从dataGridView中选择行
我试图从DataGridView中删除所选行,DataGridView链接到数据库中的表。它声明了以下错误代码 你知道我哪里出了问题吗 删除按钮代码 什么是“ExtraId”,一个文本框,一个字符串 根据这一点,您必须使用:C# SQL Delete语句不能从dataGridView中选择行,c#,mysql,datagridview,C#,Mysql,Datagridview,我试图从DataGridView中删除所选行,DataGridView链接到数据库中的表。它声明了以下错误代码 你知道我哪里出了问题吗 删除按钮代码 什么是“ExtraId”,一个文本框,一个字符串 根据这一点,您必须使用: SqlCommand sda = new SqlCommand("Delete From Extra Where Extra_ID = @" + Extra_ID.Text, con); 我看不到你在任何地方执行命令 添加 此外,您正在引用单元格对象,而不是其值。 此外
SqlCommand sda = new SqlCommand("Delete From Extra Where Extra_ID = @" + Extra_ID.Text, con);
我看不到你在任何地方执行命令 添加 此外,您正在引用单元格对象,而不是其值。 此外,您还引用了
@ExtraID
和@Extra\u ID
private void DeleteExtraBtn_Click(object sender, EventArgs e)
{
SqlConnection con = new SqlConnection(@"Data Source=(LocalDB)\v11.0; AttachDbFilename=C:\Users\Donald\Documents\Visual Studio 2013\Projects\DesktopApplication\DesktopApplication\Student_CB.mdf ;Integrated Security=True");
con.Open();
try
{
//Delete selected extra row
SqlCommand sda = new SqlCommand("Delete From Extra Where Extra_ID = @ExtraID", con);
sda.Parameters.AddWithValue("@ExtraID", extraGridView.CurrentRow.Cells[0].Value);
sda.ExecuteNonQuery();
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
}
con.Close();
loadExtraTable();
}
哦,是的,抱歉。我没有把它包括在上面的例子中。但是它仍然不适用于此。为了更好地进行清理,您应该在使用块时包装您的连接和命令。你检查过监狱开门了吗?如果它没有打开,它不会总是抛出错误。显示我刚才添加到上述代码中的错误。看起来您可能正在尝试添加单元格对象而不是单元格对象值,应该更接近
extraGridView.CurrentRow.Cells[0]。value
或extraGridView.CurrentRow.Cells[0].Text
您有一个可变的命名不匹配@Extra\u ID
!=<代码>@ExtraID
sda.ExecuteNonQuery();
private void DeleteExtraBtn_Click(object sender, EventArgs e)
{
SqlConnection con = new SqlConnection(@"Data Source=(LocalDB)\v11.0; AttachDbFilename=C:\Users\Donald\Documents\Visual Studio 2013\Projects\DesktopApplication\DesktopApplication\Student_CB.mdf ;Integrated Security=True");
con.Open();
try
{
//Delete selected extra row
SqlCommand sda = new SqlCommand("Delete From Extra Where Extra_ID = @ExtraID", con);
sda.Parameters.AddWithValue("@ExtraID", extraGridView.CurrentRow.Cells[0].Value);
sda.ExecuteNonQuery();
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
}
con.Close();
loadExtraTable();
}