c++ 调用sqlite源文件代码操作数据库

  1. 官网下载sqlite源文件

c++ 调用sqlite源文件代码操作数据库

  1. 用到以下两个文件

c++ 调用sqlite源文件代码操作数据库

  1. vs2015新建VC++解决方案,新增项目

c++ 调用sqlite源文件代码操作数据库

 

  1. sqlite的文件夹,内含头文件和源文件放到项目里

 

 

  1. 在解决方案资源管理器里,点击一下【显示所有文件】按扭,会显示项目文件夹里的所有文件,但此时sqlite的文件未包含到项目里来

 

 

  1. 包含在项目中

 

 

  1. 先使用多字节字符集,避免字符集带来的问题

 

 

 

  1. C/C++混合编程,编译报头文件错误,sqlite3.c 设置不使用预编译头,或者编译成动态库载入

 

 

 

  1. 引用头文件,创建sqlite3对象,后续操作数据库都要用到

 

 

  1. 新建数据库

if (sqlite3_open("./SqliteDemo.db", &m_pDataBase) != SQLITE_OK)

{

AfxMessageBox(_T("创建数据库(testSqlite.db)失败!"));

sqlite3_close(m_pDataBase);

}

 

 

  1. 打开(连接)数据库,和新建是同一个函数,内部会判断是否存在,不存在会新建再打开,存在直接打开

if (sqlite3_open("./SqliteDemo.db", &m_pDataBase) != SQLITE_OK)

{

AfxMessageBox(_T("打开数据库失败,请检查数据库是否已经损坏!"));

sqlite3_close(m_pDataBase);

}

 

  1. 创建数据表

char *szErr = NULL;

char* szSQL = "CREATE TABLE user(ID int, Name varchar(20), Age int)";

if (sqlite3_exec(m_pDataBase, szSQL, NULL, NULL, &szErr) != SQLITE_OK)

{

AfxMessageBox(_T("创建表(user)失败! 失败原因:") + CString(szErr));

}

 

 

  1. 添加数据

char* sql = "insert into user values(1,'abc',10)";

if (sqlite3_exec(m_pDataBase, sql, NULL, NULL, &err) != SQLITE_OK)

{

AfxMessageBox(_T("添加数据失败,") + CString(err));

sqlite3_close(m_pDataBase);

}