Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# SQL Delete语句不能从dataGridView中选择行_C#_Mysql_Datagridview - Fatal编程技术网

C# SQL Delete语句不能从dataGridView中选择行

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); 我看不到你在任何地方执行命令 添加 此外,您正在引用单元格对象,而不是其值。 此外

我试图从DataGridView中删除所选行,DataGridView链接到数据库中的表。它声明了以下错误代码

你知道我哪里出了问题吗

删除按钮代码

什么是“ExtraId”,一个文本框,一个字符串

根据这一点,您必须使用:

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();
}