首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

SQLite数据插入不正确,解决思路

2013-01-25 
SQLite数据插入不正确,急急急。。。。。sqlite3 *dbchar *zErrMsg 0int rc/*创建数据库Users*/rc sqlite

SQLite数据插入不正确,急急急。。。。。
         sqlite3 *db;
char *zErrMsg = 0;
int rc;

/*创建数据库Users*/
rc = sqlite3_open("users.db", &db);
if( rc )
{
sqlite3_close(db);
return TRUE;
}

/*创建表格*/
rc = sqlite3_exec(db, "CREATE TABLE DataValue(用户类型 VARCHAR(64) primary key,用户名 VARCHAR(256),密码 VARCHAR(64))",callback, 0, &zErrMsg);
if(rc!=SQLITE_OK)
{
sqlite3_close(db);
sqlite3_free(zErrMsg);
return TRUE;
}

rc = sqlite3_exec(db,"INSERT INTO DataValue VALUES(管理员,AdMain,AdMain)",callback, NULL, &zErrMsg);
if(rc!=SQLITE_OK)

sqlite3_free(zErrMsg);
}

rc = sqlite3_exec(db,"INSERT INTO DataValue VALUES(用户,abc123,abc123)",callback, NULL, &zErrMsg);
if (rc!=SQLITE_OK)
{
sqlite3_free(zErrMsg);
}

sqlite3_close(db);
这是我写的一段代码,我运行过一遍后,表格已经存在,但是我试过删除表格,删除后再添加数据,但是显示错误No Such Column:管理员,这是什么原因?另外,是不是创建表格的时候一定要有ID值,不然就不能正确插入数据?
[解决办法]
sqlite
是要 utf8 字符串传入的
要么就用 16 结尾的, 传入 wchar_t 字符串.

[解决办法]
用户类型不唯一:
用户类型 VARCHAR(64) primary key
-->
用户类型 VARCHAR(64)
[解决办法]
数据库结构建立有问题

1.用户类型竟然做主键,用户类型 VARCHAR(64)

2.但是你这样就没主键了,要自己建立一个Index做主键,并且自动增长
[解决办法]
楼主先不使用汉字看看能不能正确插入. 如果能就转换码吧.

用_T是不行的, _T是你的环境是UNICODE就使用w_char,是ASCII是就char.

使用MultiByteToWideChar转换吧.

热点排行