【发布时间】:2013-02-07 09:24:46
【问题描述】:
SQL:
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 错误或缺少数据库
除了,没有抛出异常并且数据插入正确。
有没有办法使用System.Data.SQLite 获得LAST_ERROR_MESSAGE?我只遇到过获取非 .net API 的最后一条错误消息的方法。
当我错误地插入到不存在的列时,会返回相同的错误代码 (1),但这次会抛出最后一条错误消息的异常。
那么如果插入工作正常,为什么会返回 1?非常感谢任何帮助。
编辑:我也尝试不发送TimeStamp DateTime,以防这是日期格式问题,但会发生同样的情况。
编辑:原来 1 是受影响的行数,全部在文档http://msdn.microsoft.com/en-us/library/system.data.idbcommand.executenonquery%28v=vs.80%29.aspx
【问题讨论】:
-
你从哪里得到返回值?你总是可以
try catch例外。 -
我没有逐字复制我的工作代码 - 但概念是相同的。
标签: c# .net sql sqlite system.data.sqlite