SQLite не вставляется в - PullRequest
       16

SQLite не вставляется в

0 голосов
/ 04 декабря 2009

У меня есть следующий блок кода

SQLiteConnection cnn = new SQLiteConnection("Data Source=" + getDBPath());
cnn.Open();
SQLiteCommand mycommand = new SQLiteCommand(cnn);
string values = "'" + this.section + "','" + this.exception + "','" + this.dateTimeString + "'";
string sql = @"INSERT INTO Emails_Pending (Section,Message,Date_Time) values (" + values + ")"; 
mycommand.CommandText = sql;
mycommand.ExecuteNonQuery();
cnn.Close();

Когда я его выполняю, ничего не происходит, ошибок не возникает, но ничего не вставляется, что я делаю не так?

Путь к БД правильный! Оператор вставки работает, пробовал в графическом интерфейсе SQLLite (нет проблем)

Вот фрагмент кода SQL:

"INSERT INTO Emails_Pending (Section,Message,Date_Time) values ('Downloading Received Messages','Object reference not set to an instance of an object.','04.12.2009 11:09:49');"

Ответы [ 2 ]

0 голосов
/ 04 декабря 2009

При использовании sqlite вы всегда должны использовать транзакции и параметризованные операторы, иначе производительность будет очень низкой.

Читать здесь: Улучшить производительность SQLite INSERT-в-секунду?

Ваш подход также уязвим для внедрения SQL. Сообщение в электронном письме может иметь кусок sql в своем теле, и ваш код выполнит этот кусок sql. Вы также можете столкнуться с проблемами, когда сообщение в ваших строковых значениях содержит "или a".

0 голосов
/ 04 декабря 2009

Как насчет добавления коммита до закрытия

mycommand.Transaction.Commit();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...