我的linux c程序有什么问题(其中用到sqlite3)? 我无法往数据库中加入资料!!!!!!!!
#include<stdio.h>#include<sqlite3.h>main(){sqlite3*db;intresult;charbuf[124];result=s...
#include<stdio.h>
#include<sqlite3.h>
main()
{
sqlite3 *db;
int result;
char buf[124];
result=sqlite3_open("db.db",&db);
if(SQLITE_OK!=result)
{
printf("open fail\n");
return -1;
}
result=sqlite3_exec(db,"create table student(name,score)",NULL,NULL,NULL);
if(SQLITE_OK==result)
{
printf("create table fail\n");
return -1;
}
/*通过这个循环往数据库中加入资料*/
do
{
scanf("%s",buf);
if(strcmp(buf,"exit")==0)
break;
result=sqlite3_exec(db,buf,NULL,NULL,NULL);
}while(1);
sqlite3_close(db);
} 展开
#include<sqlite3.h>
main()
{
sqlite3 *db;
int result;
char buf[124];
result=sqlite3_open("db.db",&db);
if(SQLITE_OK!=result)
{
printf("open fail\n");
return -1;
}
result=sqlite3_exec(db,"create table student(name,score)",NULL,NULL,NULL);
if(SQLITE_OK==result)
{
printf("create table fail\n");
return -1;
}
/*通过这个循环往数据库中加入资料*/
do
{
scanf("%s",buf);
if(strcmp(buf,"exit")==0)
break;
result=sqlite3_exec(db,buf,NULL,NULL,NULL);
}while(1);
sqlite3_close(db);
} 展开
2个回答
展开全部
应该是数据库创建的有问题,result=sqlite3_exec(db,"create table student(name,score)",NULL,NULL,NULL);中create table student(name,score)没有指明创建的字段是什么类型的,改为create table student(ID integer primary key autoincrement,name varchar(50),score integer) 最好加个主键字段ID。
另外后面跟着的
if(SQLITE_OK==result)
{
printf("create table fail\n");
return -1;
}
估计是弄错了,应该是 if(SQLITE_OK!=result)表示数据库创建不成功则退出,由于这个错误所以数据库没有创建成功就继续下面的程序,因为没有创建数据库后面的插入语句也就执行失败了。
另外后面跟着的
if(SQLITE_OK==result)
{
printf("create table fail\n");
return -1;
}
估计是弄错了,应该是 if(SQLITE_OK!=result)表示数据库创建不成功则退出,由于这个错误所以数据库没有创建成功就继续下面的程序,因为没有创建数据库后面的插入语句也就执行失败了。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询