Обновить значение столбца c# winforms применение - PullRequest
0 голосов
/ 19 февраля 2020

Я пытаюсь обновить значение столбца с помощью предложения where, но оно вызывает ошибку

"Необходимо объявить скалярную переменную" @datestring "

My Проблемная часть приложения заключается в следующем:

private void button2_Click(object sender, EventArgs e)
        {
            string value = "";
            string connetionString = "Data Source=LENOVO-PC\\CDVI_CENTAUR;Integrated Security=True";
            string sql = null;

            value = listBox1.GetItemText(listBox1.SelectedItem);
            var datestring = dateTimePicker1.Value.ToString("dd/MM/yyyy", System.Globalization.CultureInfo.InvariantCulture);


            var FirstName = value.Split(' ')[0];
            var LastName = value.Split(' ')[1];
            using (System.Data.SqlClient.SqlConnection cnn = new System.Data.SqlClient.SqlConnection(connetionString))
            {
                try
                {
                    cnn.Open();
                    using (System.Data.SqlClient.SqlCommand cmd = new System.Data.SqlClient.SqlCommand("UPDATE [Centaur3Main].[dbo].[Users]  SET [UDText12b] = @datestring WHERE FirstName = @FirstName and LastName = @LastName ", cnn))
                    {
                        // Create and set the parameters values 
                        cmd.Parameters.Add("@FirstName", SqlDbType.NVarChar).Value = FirstName;
                        cmd.Parameters.Add("@LastName", SqlDbType.NVarChar).Value = LastName;


                        cmd.ExecuteNonQuery();

                    }
                }

            }

Значение строки даты взято из указателя даты и имеет значение. Поэтому я не понимаю, как исправить эту ошибку. Можете ли вы помочь мне Я знаю, что это ошибка, вызванная новичком ie, но я не могу ее выяснить. / Я, кстати, еще младший /. Пробовал разные вещи и решения из inte rnet, но все еще не могу найти обходной путь решения. Не могли бы вы дать мне решение по моей проблеме.

Ответы [ 2 ]

0 голосов
/ 19 февраля 2020

вам нужно добавить еще один параметр в вашу команду SQL. Этот параметр равен @ datestring . Попробуйте как:

using (System.Data.SqlClient.SqlCommand cmd = new System.Data.SqlClient.SqlCommand("UPDATE [Centaur3Main].[dbo].[Users]  SET [UDText12b] = @datestring WHERE FirstName = @FirstName and LastName = @LastName ", cnn))
{
  // Create and set the parameters values 
  cmd.Parameters.Add("@FirstName", SqlDbType.NVarChar).Value = FirstName;
  cmd.Parameters.Add("@LastName", SqlDbType.NVarChar).Value = LastName;
  cmd.Parameters.Add("@datestring",SqlDbType.DateTime).Value = dateTimePicker1.Value;
  cmd.ExecuteNonQuery();
}
0 голосов
/ 19 февраля 2020

Это потому, что вы не передаете никакой параметр для @datestring, как ясно говорит ошибка Вам нужно также передать этот параметр как

cmd.Parameters.Add("@datestring", SqlDbType.DateTime).Value = datestring;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...