如何删除sql数据行c#

z4iuyo4d  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(389)

表单布局:https://i.stack.imgur.com/dyppq.png cbox.text选择哪个问题。我的数据库中有一个表(如下所示),我需要允许用户使用按钮删除行。

+------------+--------------+-------------+
| tbl_QNS_ID | OptionNumber | OptionLabel |
+------------+--------------+-------------+
|          1 |            1 | option1text |
|          1 |            2 | option2text |
|          1 |            3 | option3text |
|          1 |            4 | option4text |
|          1 |            5 | option5text |
|          2 |            1 | option1text |
|         ...|           ...| ...         |
+------------+--------------+-------------+

通常我应该能够使用下面的代码来删除特定的行,但是因为表单上有另一个按钮,允许用户添加行,所以我需要这个按钮来删除optionnumber最高的行。

private void btndeleteoption_Click(object sender, EventArgs e)
        {
            using (SqlConnection sqlcon = new SqlConnection(connectionstring))
            {
                sqlcon.Open();
                string sqlDelete = " Delete from tbl_Option where OptionNumber=1 and tbl_QNS_ID=@qnsid";
                SqlCommand sqldelete = new SqlCommand(sqlDelete);
                sqldelete.Connection = sqlcon;
                sqldelete.parameters.addwithvalue("qnsid",cbox.Text);
                sqldelete.ExecuteNonQuery();
                MessageBoxResult result = System.Windows.MessageBox.Show("Successfully Updated", "Updated", MessageBoxButton.OK, MessageBoxImage.Information);
                if (result == MessageBoxResult.OK)
                {
                    Admin openadmin = new Admin();
                    openadmin.Show();
                    this.Hide();
                }
            }            
        }
kninwzqo

kninwzqo1#

是参数中的@吗?cmd.parameters.addwithvalue(“@qnsid”,cbox.text);–伊姆索波夫
我试过之后 @qnsid 以及 qnsid ,都运行成功

void Main()
{
    using (SqlConnection sqlcon = new SqlConnection(this.Connection.ConnectionString))
    {
        sqlcon.Open();
        string sqlDelete = @" 
        --test data
        CREATE TABLE ##tbl_Option 
            ([OptionNumber] int, [tbl_QNS_ID] int)
        ;

        INSERT INTO ##tbl_Option 
            ([OptionNumber], [tbl_QNS_ID])
        VALUES
            (1, 2)
        ;           
        --sql
        Delete from ##tbl_Option where OptionNumber=1 and tbl_QNS_ID=@qnsid";
        SqlCommand sqldelete = new SqlCommand(sqlDelete);
        sqldelete.Connection = sqlcon;
        sqldelete.Parameters.AddWithValue("@qnsid", 2);
        sqldelete.ExecuteNonQuery();

        var results = sqlcon.Query("select * from ##tbl_Option").ToList(); //result null
    }
}

相关问题