Код возвращает значение true, но данные отсутствуют в таблице - PullRequest
0 голосов
/ 12 мая 2019

Я пытаюсь добавить данные в базу данных в SSMS. Согласно моему коду, я получаю успешную вставку, но в таблице базы данных. У меня новая пустая строка без данных. Вот мой пример кода.

SqlConnection conn = new SqlConnection("Server=.\\SQLEXPRESS;Database=OSMSSE;Integrated Security=True;connect timeout =30");
public void AddData(string word){

conn.Open();
string sql = "insert into TestBlock (Words) values(@word)"; 
SqlCommand  cmd = new SqlCommand(sql, conn);
cmd.Parameters.AddWithValue("@word", word.ToLower());
int res = cmd.ExecuteNonQuery();
if ( res > 0)
{
Console.WriteLine("Inserted");
}
conn.Close();
}

А вот изображение таблицы базы данных без данных. Запись таблицы базы данных SS

Таблица базы данных Конструктор SS

Ответы [ 2 ]

0 голосов
/ 12 мая 2019

Проблема была в этой строке

cmd.Parameters.AddWithValue("@word", word.ToLower());

Это исправить.

cmd.Parameters.Add("@word", (String) word.ToLower());

Как параметры добавляются как объекты.

0 голосов
/ 12 мая 2019

Исходя из ваших скриншотов, имя вашей таблицы TestBlock2, а не TestBlock. Вот почему вам нужно изменить вашу команду как;

string sql = "insert into TestBlock2 (Words) values(@word)"; 

Также у меня есть несколько предложений;

  1. Вы не должны писать свою строку подключения жестко. Вам нужно поместить в него какой-нибудь файл конфигурации или файл настроек.
  2. Возможно, вы используете conn в качестве поля в вашем коде. Вместо этого создайте соединение с вашим методом.
  3. Вы должны использовать оператор using для автоматического удаления соединения и команды.
  4. Не не использовать AddWithValue метод. Это может иногда давать неожиданные результаты . Вместо этого используйте метод Add (предпочтительно Add(String, SqlDbType, Int32) перегрузка )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...