微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

c# – SQLite .NET Insert ExecuteNonQuery返回1

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#Pseudo-ish代码

sqliteCommand command = new sqliteCommand(INSERT_COMMAND_TEXT);
command.Parameters.AddWithValue("@paramName", object.value);
command.Connect = connectvar;
command.ExecuteNonQuery();

当ExecuteNonQuery()运行时,返回值1,根据sqliteOrg意味着:

sql error or missing database

除外,不会抛出任何异常并正确插入数据.

有没有办法使用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

解决方法:

重读您的文档.我相信ExecuteNonQuery会在错误时返回受影响的行数或-1.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐