加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

C++连接sqlite数据库的坑

发布时间:2020-12-16 07:18:46 所属栏目:百科 来源:网络整理
导读:新的第一次用vs2013搞 C++连接sqlite数据库,遇到了很多问题,我也不搞不懂~~~下面写点小体会 首先: 你要先配置好sqlite的环境 参考链接: https://blog.csdn.net/ijinfu/article/details/68485273 https://www.cnblogs.com/chechen/p/7356010.html ? 配置

新的第一次用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? ? 再次创建完毕,运行

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读