как удалить строку данных sql c # - PullRequest
0 голосов
/ 04 июня 2018

Макет формы: 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 |
|         ...|           ...| ...         |
+------------+--------------+-------------+  

Обычно я должен иметь возможность использовать приведенный ниже код для удаления конкретной строки,но поскольку у меня есть другая кнопка в форме, которая также позволяет пользователю добавлять строки, мне нужна кнопка, чтобы удалить строку с наибольшим номером опции.

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

1 Ответ

0 голосов
/ 04 июня 2018

это @ в вашем параметре?cmd.Parameters.AddWithValue ("@ qnsid", cbox.Text);- Imsopov

после того, как я попробую @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
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...