Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# SQLite.NET Insert ExecuteNonQuery返回1_C#_.net_Sql_Sqlite_System.data.sqlite - Fatal编程技术网

C# SQLite.NET Insert ExecuteNonQuery返回1

C# SQLite.NET Insert ExecuteNonQuery返回1,c#,.net,sql,sqlite,system.data.sqlite,C#,.net,Sql,Sqlite,System.data.sqlite,SQL: C#伪ish代码: 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

SQL:

C#伪ish代码:

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)
运行
ExecuteNonQuery()
时,返回值
1
,根据SqliteOrg,该值表示:

SQL错误或缺少数据库

除此之外,不会引发异常,并且数据插入正确

有没有办法使用
System.Data.SQLite
获取
LAST\u ERROR\u消息?我只找到了一些方法来获取非.NETAPI的最后一条错误消息

当我错误地插入到不存在的列时,将返回相同的错误代码(1),但这一次将抛出一个异常和最后一条错误消息

那么,如果insert有效,为什么要返回1呢?非常感谢您的帮助

编辑:我也尝试过不发送
时间戳DateTime
,以防它是一个日期格式问题,但同样的情况也会发生


编辑:结果是1是受影响行的#,它都在文档中

重新阅读文档。我相信ExecuteOnQuery会返回受影响的行数或错误时返回-1。

确定返回值吗


对于UPDATE、INSERT和DELETE语句,返回值是受命令影响的行数。对于所有其他类型的语句,返回值为-1。

从何处获取返回值?你总是可以
尝试捕捉异常。我没有逐字复制我的工作代码-但概念是一样的。我想它说的是“是的,我插入了'1'新行。恭喜!”我疲惫的眼睛错过了这一点,非常感谢你的帮助。别忘了将其中一个标记为答案,这样它就不会继续得到回答。我已经我在StackOF上的问题大约有1/4是“疲劳”问题……好的。但那60秒是我给你一个参考URL的时间!(不用担心)我疲惫的眼睛错过了这一点,非常感谢您的帮助。即使成功,存储过程始终返回-1。对于UPDATE、INSERT和DELETE语句,返回值是受命令影响的行数。对于所有其他类型的语句,返回值是-1。
SQLiteCommand command = new SQLiteCommand(INSERT_COMMAND_TEXT);
command.Parameters.AddWithValue("@paramName", object.value);
command.Connect = connectVar;
command.ExecuteNonQuery();