C++使用sqlite的方法

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, 





  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值