分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow

也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!

SQLite,是一款轻型的数据库,是遵守ACID的关联式数据库管理系统,支持跨平台,操作简单,能够使用很多语言直接创建数据库。
官方网站:www.sqlite.org

在VC环境下编写连接SQLite的方法,网上有很多种,自己试验了其中一种,感觉还不错,下面记录下来,使用到的文件包括官方网站下载的文件和CodeProject上的SQLite3Wrapper封装(http://www.codeproject.com/KB/windows/SQLite3Wrapper.aspx)

测试环境:Windows 7
编程环境:Visual Studio 2008 SP1
第一步:新建基于对话框的工程,名称为SQLiteTest;
第二步:添加sqlite3.h、sqlite3i.h、DbSqlite.h、DbSqlite.cpp四个文件到工程;
第三步:在对话框上添加两个按钮,一个LIST列表控件,修改其VIEW属性为report,为其添加变量m_ListCtrl;
第四步:把“w32SQLite3.lib”放到工程的目录下,右键点击解决方案里面项目的“属性”,在“链接器”的“输入”的“附加依赖项”填入“w32SQLite3.lib”;
第五步:在对话框的实现文件里面添加头文件

#include "DbSQLite.h" 

第六步:“创建一张表”按钮的代码:

void CSQLiteTestDlg::OnBnClickedCreateButton() 

    bool fTest; 
    CDbSQLite sqlite; 
    //连接打开SQLite数据库 
    fTest = sqlite.Open(_T("theTestSqlite.db")); 
    if (!fTest) 
    { 
        AfxMessageBox(_T("打不开theTestSqlite.db")); 
        return; 
    } 
    //执行创建表语句 
    fTest = sqlite.DirectStatement(_T("CREATE TABLE usersInfo(name varchar(30), password varchar(20))")); 
    if (!fTest) 
        AfxMessageBox(_T("不能创建表usersInfo")); 
    //新增数据 
    CString szQuery; 
    szQuery = _T("INSERT INTO usersInfo VALUES ('xiaoWang','123')"); 
    fTest = sqlite.DirectStatement(szQuery); 
    if (!fTest) 
        AfxMessageBox(_T("插入数据失败!")); 
    szQuery = _T("INSERT INTO usersInfo VALUES ('daWang','322')"); 
    fTest = sqlite.DirectStatement(szQuery); 
    if (!fTest) 
        AfxMessageBox(_T("插入数据失败!")); 
    AfxMessageBox(_T("创建表成功,插入数据成功!")); 

第七步:“预览数据”按钮的代码:

void CSQLiteTestDlg::OnBnClickedLookButton() 

    BOOL fTest; 
    CDbSQLite sqlite; 
    fTest = sqlite.Open(_T("theTestSqlite.db")); 
    if (!fTest) 
    { 
        AfxMessageBox(_T("打不开theTestSqlite.db")); 
        return; 
    } 
    CSqlStatement *stmt = sqlite.Statement(_T("SELECT * FROM usersInfo")); 
    //当数据不为空的时候,填充LIST控件 
    if (stmt != NULL) 
    { 
        m_ListCtrl.DeleteAllItems();  //清除LIST项 
        while(m_ListCtrl.DeleteColumn(0));//清除LIST列项 
        CRect rect; 
        m_ListCtrl.GetWindowRect(&rect);  //获得LIST控件大小 
        int nFields = stmt->Fields();  //取得数据库表的列数 
        int nWidth = (rect.Width() - rect.Width() * 0.02) / nFields; //平均分布列数 
        int nCol = 0; 
        int nRow = 0; 
        CString szText; 
        for(nCol = 0; nCol < nFields; nCol++) 
        { 
            szText = stmt->FieldName(nCol);        //得到列名 
            m_ListCtrl.InsertColumn(nCol, szText, LVCFMT_LEFT, nWidth, nCol); 
        } 
        while (stmt->NextRow()) 
        { 
            szText = stmt->ValueString(0);        //得到列值 
            m_ListCtrl.InsertItem(nRow, szText); 
            for(nCol = 1; nCol < nFields; nCol++) 
            { 
                szText = stmt->ValueString(nCol); //得到列值 
                m_ListCtrl.SetItem(nRow, nCol, LVIF_TEXT, szText, 0, 0, 0, 0); 
            } 
            ++nRow; 
        } 
    } 
    delete stmt;
    UpdateData(FALSE); 

 

第八步:把“w32SQLite3.dll”放到Debug文件夹下。
完成,编译程序,结果如下图所示:


示例下载:http://download.csdn.net/source/2753306

给我老师的人工智能教程打call!http://blog.csdn.net/jiangjunshow

VC连接SQLite3的方法 MFC封装类相关推荐

  1. VC连接mysql数据库错误:libmysql.lib : fatal error LNK1113: invalid machine 解决方法

    VC连接MySQL的配置过程在上一篇博文中,不过当你设置好,以为万事大吉的时候,运行却出现这个错误:libmysql.lib : fatal error LNK1113: invalid machin ...

  2. VC启动窗口画面制作方法研究

    VC启动窗口画面制作方法研究 源代码运行效果图如下: 1. 概述 前几天在设计软件时,选择VC作为开发工具,想做个启动画面,由于以前没有制作过,所以到网上搜了一通.网上有几篇相关文章,有两篇我觉得很有 ...

  3. VC常见LINK处理方法

    VC常见LINK处理方法 在创建MFC项目时, 不使用MFC AppWizard向导, 如果没有设置好项目参数, 就会在编译时产生很多连接错误, 如error LNK2001错误, 典型的错误提示有: ...

  4. VC连接SQL server2005

    VC连接SQL server2005 1.创建一个MFC对话框程序 界面如下 2.创建一个成员变量 这个成员变量用于连接数据库 3.响应按钮函数OnButton1() 在响应函数里主要有三个函数 函数 ...

  5. VC++中操作XML(MFC、SDK)

    VC++中操作XML(MFC.SDK) XML在Win32程序方面应该没有在Web方面应用得多,很多Win32程序也只是用XML来存存配置信息而已,而且没有足够的好处的话还不如用ini.VC++里操作 ...

  6. pdo sqlite_ sqlite2 pdo_mysql_php使用pdo连接sqlite3的配置示例

    本文实例讲述了php使用pdo连接sqlite3的配置方法.分享给大家供大家参考,具体如下: 刚刚开始使用php+sqlite 的时候,一直以为自己使用的是sqlite3 ,其实不是,php从php5 ...

  7. VC LP的使用方法

    (1)VC LP 的运行方法 @vc_static_shell -use_ipv6 -full64 -mode64 //需要加上-use_ipv6否则会报错,显示无法连接, (2)VC LP导入库,设 ...

  8. windows7 x64系统安装VC++6.0的方法探讨

    破解方法: 运行setup.exe安装程序,会弹出如下的的程序兼容性助手提示:此程序存在已知的兼容性问题,这个是Win7在警告用户VC++6.0存在兼容性问题:此程序存在已知的兼容性问题.如下图,选中 ...

  9. robo3t 连接服务器数据库_车牌识别软件连接各种数据库方法大全

    软件连接各种数据库方法大全 1:软件连接免安装数据库. 免安装数据库使用方便,不受操作系统版本影响,不用安装,解压打开运行即可,所以免安装数据库不要放在桌面上,也不要解压打开多个. 打开车牌识别软件, ...

最新文章

  1. mysql中的%_mysql入门
  2. 【转】C# 二维码生成
  3. tl wn322g linux驱动下载,TL-WN322G+ 2.0_WN422G+ 2.0驱动程序
  4. Bootstrap4+MySQL前后端综合实训-Day04-PM【PowerDesigner 图形化数据库设计软件(设置依赖关系、自动增长主键、生成sql语句)、SQLyog软件(备份数据库)】
  5. 检测到磁盘可能为uefi引导_Win10创意者无法更新提示“磁盘布局不受uefi固件支持”怎么办?...
  6. Oracle学习(五)DBLINK
  7. Delta DVP 系列 PLC 各装置 Modbus 地址
  8. python哪个国家的品牌_Python之初识Web,打造属于你的个人品牌!
  9. MySQLdb查询有中文关键字查不到数据
  10. (一)区块链的共识算法:整体介绍 及 分叉 的通俗讲解
  11. Python人脸识别项目-基础代码
  12. 基于阿里DDNS的ipv6 for windows版软件
  13. Spring Cloud Hystrix 全解 (1) - 总览篇
  14. android壁纸和手机屏幕之间要怎么对应,安卓Android手机屏幕壁纸分辨率选择技巧...
  15. Oracle 基本SQL语句
  16. C#getPixel和内存法读取灰度图信息
  17. 想自由查看自己网站每个页面流量情况?这个工具可以满足需求!
  18. [附源码]java毕业设计网上点餐系统
  19. AUC的计算方法及相关总结
  20. 山区地貌图 在某山区(平面区域(0,2800)´(0,2400)内,单位:米)测得一些地点的高程(单位:米)如表1,试作出该山区的地貌图.

热门文章

  1. HTML 中多媒体设置:1、滚动字幕及滚动图片的设置 2、音乐视频的插入
  2. linux系统IO操作
  3. 解决后台json数据返回的字段需要替换的问题
  4. Springmvc 关于静态资源转发的问题解决
  5. Windows/Linux服务器上Tomcat开启远程调试,使用IDEA本地调试
  6. C#LeetCode刷题之#867-转置矩阵(Transpose Matrix)
  7. instagram架构_如何为亚马逊,Instagram,Zalando和天猫生成产品图像
  8. 使用React,TypeScript和Socket.io构建聊天应用
  9. Headers and client library minor version mismatch.
  10. 改改Python代码,运行速度还能提升6万倍