SQL:SQLite .NET Вставить ExecuteNonQuery Возвращает 1
CREATE TABLE main.LogRecord (
Id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL ,
TimeStamp DATETIME NOT NULL ,
Type TEXT NOT NULL ,
Severity TEXT NOT NULL ,
Message TEXT NOT NULL ,
Origin TEXT NOT NULL)
INSERT INTO LogRecord
(TimeStamp, Type, Severity, Message, Origins) VALUES
(@timestamp, @type, @severity, @message, @origin)
C# Псевдо-иш Код:
SQLiteCommand command = new SQLiteCommand(INSERT_COMMAND_TEXT);
command.Parameters.AddWithValue("@paramName", object.value);
command.Connect = connectVar;
command.ExecuteNonQuery();
Когда ExecuteNonQuery()
работает, значение 1
возвращается который согласно SqliteOrg означает:
Ошибка SQL или отсутствующая база данных
Кроме того, исключение не выбрасывается И данные вставляются правильно.
Есть ли способ получить LAST_ERROR_MESSAGE
используя System.Data.SQLite
? Я только нашел способы получить последнее сообщение об ошибке для API .net .net.
Когда я неправильно вставляю в столбец, который не существует, возвращается тот же код ошибки (1), но на этот раз исключение выдается с последним сообщением об ошибке.
Так что если вставка работает, почему 1 возвращается? Любая помощь приветствуется.
Редактировать: Я также не пытался отправить TimeStamp DateTime
в случае, если это была проблема с форматированием даты, но такая же ситуация возникает.
Edit: Выключает 1 является # затронутых строк, и все это в документации http://msdn.microsoft.com/en-us/library/system.data.idbcommand.executenonquery%28v=vs.80%29.aspx
Где вы получаете возвращаемое значение? Вы всегда можете «попытаться поймать» исключение. – MyCodeSucks
Я не копировал свой рабочий код дословно - но понятия те же. – Chris