您的位置:首页 > 编程语言 > C语言/C++

C++使用sqlite的方法

2016-06-27 12:12 483 查看
windows下sqlite的使用

1.先去官网下载sqllite文件

2.编译生成lib文件

 将sqlite3.h(在sqlite-amalgamation-3071300.zip压缩包中)添加到工程。
sqlite3.lib复制到工程文件夹下。
工程属性中添加sqlite3.lib库依赖。

3.创建win32工程

代码如下:

/*
本程序测试sqlite数据库的增删改查

*/

#include "stdafx.h"
#include "sqlite3.h"
#include <iostream>
using namespace std;

sqlite3 * pDB = NULL;

//增加用户
bool AddUser(const string& sName, const string& sAge);
//删除用户
bool DeleteUser(const string& sName);
//修改用户
bool ModifyUser(const string& sName, const string& sAge);
//查找用户
bool SelectUser();

int _tmain(int argc, _TCHAR* argv[])
{
//打开路径采用utf-8编码
//如果路径中包含中文,需要进行编码转换
int nRes = sqlite3_open("D:\\sqlite\\test.db", &pDB);
if (nRes != SQLITE_OK)
{
cout<<"Open database fail: "<<sqlite3_errmsg(pDB);
goto QUIT;
}

//添加“赵钱孙李”
if (    !AddUser("zhao", "18")
|| !AddUser("qian", "19")
|| !AddUser("sun", "20")
|| !AddUser("li", "21"))
{
goto QUIT;
}

//删除“赵”
if (!DeleteUser("zhao"))
{
goto QUIT;
}

//修改“孙”
if (!ModifyUser("sun", "15"))
{
goto QUIT;
}

//查找用户
if (!SelectUser())
{
goto QUIT;
}

QUIT:
sqlite3_close(pDB);

return 0;
}

bool AddUser(const string& sName, const string& sAge)
{
string strSql = "";
strSql += "insert into user(name,age)";
strSql += "values('";
strSql += sName;
strSql += "',";
strSql += sAge;
strSql += ");";

char* cErrMsg;
int nRes = sqlite3_exec(pDB , strSql.c_str() ,0 ,0, &cErrMsg);
if (nRes != SQLITE_OK)
{
cout<<"add user fail: "<<cErrMsg<<endl;
return false;
}
else
{
cout<<"add user success: "<<sName.c_str()<<"\t"<<sAge.c_str()<<endl;
}

return true;
}

bool DeleteUser(const string& sName)
{
string strSql = "";
strSql += "delete from user where name='";
strSql += sName;
strSql += "';";

char* cErrMsg;
int nRes = sqlite3_exec(pDB , strSql.c_str() ,0 ,0, &cErrMsg);
if (nRes != SQLITE_OK)
{
cout<<"delete user fail: "<<cErrMsg<<endl;
return false;
}
else
{
cout<<"delete user success: "<<sName.c_str()<<endl;
}

return true;
}

bool ModifyUser(const string& sName, const string& sAge)
{
string strSql = "";
strSql += "update user set age =";
strSql += sAge;
strSql += " where name='";
strSql += sName;
strSql += "';";

char* cErrMsg;
int nRes = sqlite3_exec(pDB , strSql.c_str() ,0 ,0, &cErrMsg);
if (nRes != SQLITE_OK)
{
cout<<"modify user fail: "<<cErrMsg<<endl;
return false;
}
else
{
cout<<"modify user success: "<<sName.c_str()<<"\t"<<sAge.c_str()<<endl;
}

return true;
}

static int UserResult(void *NotUsed, int argc, char **argv, char **azColName)
{
for(int i = 0 ; i < argc ; i++)
{
cout<<azColName[i]<<" = "<<(argv[i] ? argv[i] : "NULL")<<", ";
}
cout<<endl;

return 0;
}

bool SelectUser()
{
char* cErrMsg;
int res = sqlite3_exec(pDB, "select * from user;", UserResult , 0 , &cErrMsg);

if (res != SQLITE_OK)
{
cout<<"select fail: "<<cErrMsg<<endl;
return false;
}

return true;
}

运行结果:

add user success: zhao 18
add user success: qian 19
add user success: sun 20
add user success: li 21
delete user success: zhao
modify user success: sun 15
id = 2, name = qian, age = 19,
id = 3, name = sun, age = 15,
id = 4, name = li, age = 21,
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  sqlite