折弯机——SQLite错误代码整理

折弯机——SQLite错误代码整理,第1张

概述这两天为了一个问题折腾了好久,记载一下。 SQLite语句一定要严格按例子来写,例如: "CREATE TABLE PunchData (Id Text primary key, Height Float, Angle Float, Radius Float, Strength Float)";  "INSERT INTO PunchData(Id,Height, Angle, Radius, S

这两天为了一个问题折腾了好久,记载一下。

sqlite语句一定要严格按例子来写,例如:

"CREATE table PunchData (ID Text primary key,Height float,Angle float,Radius float,Strength float)";


"INSERT INTO PunchData(ID,Height,Angle,Radius,Strength) VALUES('{0}',{1},{2},{3},{4})";

创建的时候ID是Text类型,插入的时候,{0}要加单引号。。 否则,ID为0123是,通过数据库 *** 作 读取出来后变为123了。


最下面是执行sqlite语句的时候,若出错,出错对应的ErrorCode和Message。

try
{
using (DbCommand cmd = cnn.CreateCommand())
{
cmd.CommandText = string.Format(punchInsertStr,punchData.ID,punchData.height.ToString(),
punchData.angle.ToString(),punchData.radius.ToString(),
punchData.strength.ToString());
count = cmd.ExecuteNonquery();
}
}
catch (sqliteException ex)
{
int errorCode = (int)ex.ErrorCode;

}


//定义错误代码与相应的错误信息

public Readonly Dictionary<int,string> errorMessage = new Dictionary<int,string> {
{ 1,"sql错误或丢失数据库" },{ 2,"sqlite 内部逻辑错误" },{ 3,"拒绝访问" },
{ 4,"回调函数请求取消 *** 作" },{ 5,"数据库文件被锁定" },{ 19,"由于约束违例,例如编号唯一" }
};


//界面上调用,返回错误信息

string ErrorMassage = errorMessage[errorCode]


附:

#define sqlITE_OK 0 /* 成功 | Successful result */
/* 错误码开始 */
#define sqlITE_ERROR 1 /* sql错误 或 丢失数据库 | sql error or missing database */
#define sqlITE_INTERNAL 2 /* sqlite 内部逻辑错误 | Internal logic error in sqlite */
#define sqlITE_PERM 3 /* 拒绝访问 | Access permission denIEd */
#define sqlITE_ABORT 4 /* 回调函数请求取消 *** 作 | Callback routine requested an abort */
#define sqlITE_BUSY 5 /* 数据库文件被锁定 | The database file is locked */
#define sqlITE_LOCKED 6 /* 数据库中的一个表被锁定 | A table in the database is locked */
#define sqlITE_NOMEM 7 /* 某次 malloc() 函数调用失败 | A malloc() Failed */
#define sqlITE_Readonly 8 /* 尝试写入一个只读数据库 | Attempt to write a Readonly database */
#define sqlITE_INTERRUPT 9 /* *** 作被 sqlite3_interupt() 函数中断 | Operation terminated by sqlite3_interrupt() */
#define sqlITE_IOERR 10 /* 发生某些磁盘 I/O 错误 | Some kind of disk I/O error occurred */
#define sqlITE_CORRUPT 11 /* 数据库磁盘映像不正确 | The database disk image is malformed */
#define sqlITE_NOTFOUND 12 /* sqlite3_file_control() 中出现未知 *** 作数 | UnkNown opcode in sqlite3_file_control() */
#define sqlITE_FulL 13 /* 因为数据库满导致插入失败 | Insertion Failed because database is full */
#define sqlITE_CANtopEN 14 /* 无法打开数据库文件 | Unable to open the database file */
#define sqlITE_PROTOCol 15 /* 数据库锁定协议错误 | Database lock protocol error */
#define sqlITE_EMPTY 16 /* 数据库为空 | Database is empty */
#define sqlITE_SCHEMA 17 /* 数据结构发生改变 | The database schema changed */
#define sqlITE_TOOBIG 18 /* 字符串或二进制数据超过大小限制 | String or BLOB exceeds size limit */
#define sqlITE_CONSTRAINT 19 /* 由于约束违例而取消 | Abort due to constraint violation */ (例如:主键约束) #define sqlITE_MISMATCH 20 /* 数据类型不匹配 | Data type mismatch */ #define sqlITE_MISUSE 21 /* 不正确的库使用 | library used incorrectly */ #define sqlITE_NolFS 22 /* 使用了 *** 作系统不支持的功能 | Uses OS features not supported on host */ #define sqlITE_AUTH 23 /* 授权失败 | Authorization denIEd */ #define sqlITE_FORMAT 24 /* 附加数据库格式错误 | Auxiliary database format error */ #define sqlITE_RANGE 25 /* 传递给sqlite3_bind()的第二个参数超出范围 | 2nd parameter to sqlite3_bind out of range */ #define sqlITE_NOTADB 26 /* 被打开的文件不是一个数据库文件 | file opened that is not a database file */ #define sqlITE_ROW 100 /* sqlite3_step() 已经产生一个行结果 | sqlite3_step() has another row ready */ #define sqlITE_DONE 101 /* sqlite3_step() 完成执行 *** 作 | sqlite3_step() has finished executing */ /* 错误码结束 */
总结

以上是内存溢出为你收集整理的折弯机——SQLite错误代码整理全部内容,希望文章能够帮你解决折弯机——SQLite错误代码整理所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/1170287.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-02
下一篇 2022-06-02

发表评论

登录后才能评论

评论列表(0条)

保存