C++连接sqlite数据库的坑
新的第一次用vs2013搞 C++连接sqlite数据库,遇到了很多问题,我也不搞不懂~~~下面写点小体会 首先: 你要先配置好sqlite的环境 参考链接: https://blog.csdn.net/ijinfu/article/details/68485273 https://www.cnblogs.com/chechen/p/7356010.html ? 配置好之后捏: 跟着写,跟着操作,结果运行出现了许多? ?不是找不到数据库? 就是 no such table,我真的是? 吃柠檬吧!!! 下面给上我的测试代码: 数据创建路径,这个是非常重要的,不然到时候读取不到~ 随便在一个盘建个文件夹名字自己想? 如 :? D:sqlite 接着 cmd? 进入到文件夹目录,可以开始创建数据库了 创建数据库命令? : sqlite3? 数据库名字? 如:sqlite3 test.db; ? 创建完数据就是建表了:? CREATE TABLE student( ID INT PRIMARY KEY NOT NULL,NAME TEXT NOT NULL,AGE INT NOT NULL,ADDRESS CHAR(50),FEES REAL ); ? ?表格创建完毕,没有数据怎么办?当然是插入~ INSERT INTO student (ID,NAME,AGE,ADDRESS,FEES) VALUES (1,‘Maxsu‘,27,‘Shengzhen‘,20000.00); INSERT INTO student (ID,FEES) VALUES (2,‘Minsu‘,25,‘Beijing‘,15000.00 ); INSERT INTO student (ID,FEES) VALUES (3,‘Avgsu‘,23,‘Shanghai‘,2000.00 ); INSERT INTO student (ID,FEES) VALUES (4,‘Linsu‘,‘Guangzhou‘,65000.00 ); INSERT INTO student (ID,FEES) VALUES (5,‘Sqlsu‘,26,‘Haikou‘,25000.00 ) 如图: ? ok,接下来是代码部分~~(代码也是参考修改的) #include "stdafx.h" #include "sqlite3.h" #include <iostream> using namespace std; sqlite3 * pDB = NULL; //查找 bool SelectUser(); int _tmain(int argc,_TCHAR* argv[]) { //打开路径采用utf-8编码 //如果路径中包含中文,需要进行编码转换 int nRes = sqlite3_open("D:sqlitetest.db",&pDB); if (nRes != SQLITE_OK) { cout << "Open database fail: " << sqlite3_errmsg(pDB); goto QUIT; } //查找 if (!SelectUser()) { goto QUIT; } QUIT: sqlite3_close(pDB); return 0; } 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 student;",UserResult,0,&cErrMsg); if (res != SQLITE_OK) { cout << "select fail: " << cErrMsg << endl; return false; } return true; } ? 当然了你以为就成功了么 结果运行发现 不是找不到database? 就是没发现table ? 怎么办? 先看看 有没有表: ?没有student表?? 当然是再到命令窗口 继续建表和插入数据了 .open test.db; //打开一个数据库,没有会新建 .database; //查看数据库 .table //查看数据表 是否存在 select * from student; //查看数据 ?ok? ? 再次创建完毕,运行 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |