2015-10-13 2 views
-5

Я хочу вставить данные в таблицу, но когда я это сделаю, я получаю следующую ошибку.Следующий код дает мне ошибку «Должен объявить скалярную переменную @Name»

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

Мой код ниже:

 cnn = new SqlConnection(connetionString); 
     String query = "INSERT INTO dbo.Table1 (Name) VALUES(@Name)"; 

     SqlCommand cmd = new SqlCommand(query, cnn); 
     cmd.Parameters.AddWithValue(@Name, "Nauman"); 

     try 
     { 
      cnn.Open(); 

      cmd.ExecuteNonQuery(); 
      Int32 rowsAffected = cmd.ExecuteNonQuery(); 
      MessageBox.Show ("Connection Open !"); 


      cnn.Close(); 
     } 
     catch (Exception ex) 
     { 
      MessageBox.Show(ex.Message); 
     } 
+0

Вы можете захотеть взглянуть на эту статью тоже. http://blogs.msmvps.com/jcoehoorn/blog/2014/05/12/can-we-stop-using-addwithvalue-already/ –

+0

Спасибо за ссылку :) @SeanLange –

ответ

1

попробовать

cmd.Parameters.AddWithValue("@Name", "Nauman"); 

Вы определены, чтобы понять синтаксис Сначала

cmd.Parameter.AddWithValue(String, Object); 

здесь, требуется 2 аргумента, 1-й параметр String. , но в вашем коде вы не назначали его как строку. Вы использовали @Name как ключевое слово. Вот почему код не может прочитать его как строку, используйте двойные кавычки, чтобы прочитать его как строку.

И помните, что не используйте метод AddWithValue (неявное преобразование значения), он отправляет значение nvarchar в базу данных.

попробуйте использовать Add() метод ограничить ввод данных пользователем, указав тип и длину данных

cmd.Parameters.Add("@Name",SqlDbType.VarChar,30).Value="Nauman"; 

Difference between Add() and AddWithValue()

+0

Я уже написал в порядке, посмотрите это –

+0

@user no, вы этого не сделали, у вас есть это без кавычек, что означает, что вы добавляете его со значением переменной с именем 'Name', которая находится в области видимости. – CodeCaster

+2

@Ajmot вместо «try», объясните, что вы изменили. – CodeCaster

Смежные вопросы