c # Вставка значения int в таблицу SQL - PullRequest
0 голосов
/ 16 октября 2018

Я хочу вставить некоторые данные в таблицу SQL.Но при вставке int независимо от того, что я пробовал, я получаю сообщение об ошибке:

System.Data.SqlClient.SqlException: «Преобразование не удалось при преобразовании значения varchar« @ID »в тип данных int.»

Я даже вручную установил ID на 1, чтобы быть на 100% уверенным, что это int, но все равно получаю эту ошибку

String query = "INSERT INTO table(dbo.table.ID, dbo.table.secondvar) 
VALUES ('@ID','@secondvar')";             
 using (SqlCommand cmd = new SqlCommand(query, connection))
                    {
                        int ID = 1;
                        cmd.Parameters.AddWithValue("@ID", ID);
                        cmd.Parameters.AddWithValue("@secondvar", tableModel.secondvar);    
                        connection.Open();
                        int result = cmd.ExecuteNonQuery();

Ответы [ 2 ]

0 голосов
/ 16 октября 2018

ID является целым числом, поэтому оно не должно быть между '':

Измените эту строку:

String query = "INSERT INTO table(dbo.table.ID, dbo.table.secondvar) 
VALUES ('@ID','@secondvar')";

на эту:

String query = "INSERT INTO table(dbo.table.ID, dbo.table.secondvar) 
VALUES (@ID,@secondvar)";

И лучше избегать использования AddWithValue, вместо этого используйте его как:

String query = "INSERT INTO table(dbo.table.ID, dbo.table.secondvar) 
VALUES (@ID,'@secondvar')";             
 using (SqlCommand cmd = new SqlCommand(query, connection))
 {
      int ID = 1;
      cmd.Parameters.Add("@ID", SqlDbType.Int).Value = ID;
      cmd.Parameters.Add("@secondvar", SqlDbType.VarChar).Value = somevalue; 
      //rest of the code
 }
0 голосов
/ 16 октября 2018

Удалить кавычки вокруг значений.Каркас обрабатывает это уже.

VALUES ('@ID','@secondvar')

должно быть

VALUES (@ID,@secondvar)
...