在VS2013下c++与Sqlite3的连接

第一步:
       在vs2013下建立一个空的win32工程SQLite3Test,在工程的属性-链接-输入中添加sqlite3.lib的引用。添加新的文件main.cpp,写一个main函数,并编译一下。
好,接下来把sqlite3.h/def/exp/lib通通放进SQLite3Test\SQLite3Test\目录下,跟main.cpp在一起,如图:

把sqlite3.dll跟生成的exe放在一起。

第二步:

       写下源代码:

  1. #include <iostream>
  2. #include "sqlite3.h"
  3. static std:: string strName[] = { "土行孙", "哪咤", "杨戬", "金吒", "木吒", "雷震子"};
  4. int sqlite3_exec_callback(void *data, int nColumn, char **colValues, char **colNames);
  5. int sqlite3_exec_callback(void *data, int nColumn, char **colValues, char **colNames)
  6. {
  7. for ( int i = 0; i < nColumn; i++)
  8. {
  9. printf( "%s\t", colValues[i]);
  10. }
  11. printf( "\n");
  12. return 0;
  13. }
  14. int main()
  15. {
  16. sqlite3 *conn = NULL;
  17. char *err_msg = NULL;
  18. char sql[ 200] = "";
  19. //打开数据库,创建连接;
  20. if(sqlite3_open( "test.db",&conn) != SQLITE_OK)
  21. {
  22. printf( "无法打开\n");
  23. }
  24. //执行SQL,创建一张表;
  25. sprintf(sql, "CREATE TABLE test_for_cpp(id int,name varchar(20),age int)");
  26. if(sqlite3_exec(conn,sql, NULL, NULL,&err_msg) != SQLITE_OK)
  27. {
  28. std:: string strErrMsg(err_msg);
  29. std:: string::size_type pos = 0;
  30. pos = strErrMsg.find( "already exists");
  31. if( std:: string::npos != pos)
  32. {
  33. //数据表已存在,删除表中数据;
  34. sprintf(sql, "delete from test_for_cpp");
  35. if(sqlite3_exec(conn,sql, NULL, NULL,&err_msg) != SQLITE_OK)
  36. {
  37. printf( "操作失败,错误代码:%s",err_msg);
  38. return -1;
  39. }
  40. }
  41. else
  42. {
  43. printf( "操作失败,错误代码:%s",err_msg);
  44. return -1;
  45. }
  46. }
  47. //插入数据;
  48. int nColumn = sizeof(strName) / sizeof(strName[ 0]);
  49. for( int index = 0;index < nColumn;index++)
  50. {
  51. sprintf(sql, "INSERT INTO test_for_cpp (id, name, age) VALUES (%d, '%s', %d)", index, strName[index].c_str(), 20 + index);
  52. if (sqlite3_exec(conn, sql, NULL, NULL, &err_msg) != SQLITE_OK)
  53. {
  54. printf( "操作失败,错误代码: %s", err_msg);
  55. return -1;
  56. }
  57. }
  58. // 查询;
  59. sprintf(sql, "SELECT * FROM test_for_cpp");
  60. sqlite3_exec(conn, sql, &sqlite3_exec_callback, 0, &err_msg);
  61. //关闭连接;
  62. if(sqlite3_close(conn) != SQLITE_OK)
  63. {
  64. printf( "无法关闭,错误代码:%s\n",sqlite3_errmsg(conn));
  65. return -1;
  66. }
  67. return 0;
  68. }
sqlite库文件等下载地址:https://download.csdn.net/download/ss33sss/10524228

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值