删除命令C#+;SQL Server

删除命令C#+;SQL Server,c#,sql-server,database,c#-4.0,C#,Sql Server,Database,C# 4.0,我正在执行从DataGridView中删除数据的命令 但我不能让它工作,我只想选择一条线,并删除它 除了编程一个显示“删除”的按钮外,当您单击它时,DataGridView中的选定数据将被删除 我真的需要帮助 我迷路了 我的桌子是“人” 我的专栏是“ID” 实例 {SqlConnection cn; SqlCommand cmd; SqlDataReader dr; SqlDataAdapter da; DataTable dt;} public

我正在执行从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;
    }

用于DataGridView上的按钮擦除

    private void buttondel_Click(object sender, EventArgs e)
    {

        MessageBox.Show(c.Del(TBID));
    }

问题是您的SQL查询格式不正确,并且您没有将ID传递给查询:

"Delete From Person Where = ID )"
相等性检查的一侧缺失,并且出现意外的右括号

您应该更改查询以接受参数:

"Delete From Person Where ID = @id"
然后将参数传递给命令:

cmd.Parameters.Add("@id", SqlDbType.Int).Value = ID;
因此,它变成:

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

我已经冒昧地使用语句将SqlCommand包装在一个
中,这样一旦我们处理完它,它就会被处理掉。

是您的datagrid DataBind吗?您是如何获得TBID valueup的?投票赞成一个好的解释,而不是告诉OP他犯了多少错误