找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4471|回复: 0
收起左侧

VC操作sqlite的总结

[复制链接]
ID:60076 发表于 2014-5-7 03:19 | 显示全部楼层 |阅读模式
新建一个MFC工程,将sqlite3.h和sqlite3.lib文件放到该工程的路径中,将sqlite3.dll文件放到debug文件夹中。接下来就是编码工作。

首先,不能忘了下面两行:

#include "sqlite3.h"

#pragma comment(lib, "sqlite3.lib")

然后,就是各种基础操作了:

void CVcsqliteDlg::OnButton1()

{

         sqlite3 *db=NULL;

    char *errMsg = NULL;

    int rc;

    CString strtemp;



    //连接数据库

         //若没有则建一个数据库

    rc = sqlite3_open("myfirstdb.db", &db);

    if( rc )

         {

                  strtemp.Format("Can't open database: %s\n", sqlite3_errmsg(db));

        sqlite3_close(db);

         }

         else

         {

                  strtemp="open db ok!";

                  Beep(100,50);

         }

    m_list.InsertString(0,strtemp);

         //建一个表

    rc = sqlite3_exec(db, "CREATE TABLE students(number varchar(10), name varchar(10),sex varchar(6), age varchar(2));", NULL, NULL, NULL);

    if (0!= rc)  

     {   

         strtemp.Format("CREATE Error:%s",errMsg);

     }

          else   

     {   

                   strtemp="CREATE OK";

     }

          m_list.InsertString(0,strtemp);

         //插入

    rc = sqlite3_exec(db, "INSERT INTO \"students\" VALUES('567','cd','ef','gh');",0,0,&errMsg);

     if (0!= rc)   

     {   

         strtemp.Format("Insert Error:%s",errMsg);

     }

          else   

     {   

                   strtemp="Insert OK";

     }

          m_list.InsertString(0,strtemp);

    //改

         rc=sqlite3_exec(db,"UPDATE students SET number='00',sex='male' WHERE age='gh';",0,0,&errMsg);

         if (0!=rc)

         {

                  strtemp.Format("Update Error:%s",errMsg);

         }

         else

         {

                  strtemp="Update OK";

         }

         m_list.InsertString(0,strtemp);

    //删

         rc=sqlite3_exec(db,"DELETE FROM students WHERE age='gh';",0,0,&errMsg);

         if (0!=rc)

         {

                  strtemp.Format("delete error:%s",errMsg);

         }

         else

         {

                  strtemp="delete ok";

         }

         m_list.InsertString(0,strtemp);

    //查

         int nrow = 0, ncolumn = 0;

    char **azResult; //二维数组存放結果

    CString sql="SELECT * FROM students";

    rc=sqlite3_get_table( db , sql , &azResult , &nrow , &ncolumn , &errMsg );

    if (0!=rc)

    {

                  strtemp.Format("query error:%s",errMsg);

    }

         else

         {

                  strtemp.Format("共%d行,共%d列,结果%s",nrow,ncolumn,azResult[5]);

         }

         m_list.InsertString(0,strtemp);



    //释放azResult 的內存空間

    sqlite3_free_table( azResult );

    //关闭数据库

         sqlite3_close(db)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表