代码:Database2.7z

Database.h:

 #pragma once

 #include<string>
#include<vector>
#include<Windows.h>
#include<tchar.h>
#include<iostream> #include"sqlite3.h" using namespace std; class Database{
public:
Database();
~Database();
bool initDatabase();//打开数据库,成功返回true
bool createTable(std::string tablename);//在数据库中创建一个表
void showData();//输出数据库中的数据
bool insertDatabase(string tablename, string name, string number);
bool queryDatabase(string tableName);
void dropTable(string tableName);
void deleteData(string tableName);
void changeData(string tableName); private:
sqlite3* db;
sqlite3_stmt* stmt;
}; static int callback(void* data, int argc, char** argv, char** azColName);

Database.cpp:

 #pragma once

 #include"Database.h"

 vector<string> vstr;
vector<string> vnumber; static int callback(void* data, int argc, char** argv, char** azColName){
for (int i = ; i < argc; i++){
switch (i + ){
case :
break;//id已弃用
case :
vstr.push_back(string(argv[i])); break;
case :
vnumber.push_back(string(argv[i])); break;
default:
break;
}
}
return ;
} Database::Database(){ } Database::~Database(){ } bool Database::initDatabase(){
int rc = sqlite3_open("TestDB.db", &db);
if (rc){
MessageBox(NULL, _T("数据库打开失败!"), , );
return false;
}
return true;
} bool Database::createTable(std::string tablename){
string sql = "CREATE TABLE TEST ( " \
"NAME TEXT NOT NULL," \
"NUMBER TEXT NOT NULL)";
char* zErrMsg = ;
int rc = sqlite3_exec(db, sql.c_str(), callback, , &zErrMsg);
if (rc != SQLITE_OK){
return false;
}
return true;
} void Database::showData(){
if (vstr.size() == ){
cout << "数据库中没有数据!\n";
return;
}
for (vector<string>::iterator i = vstr.begin(); i != vstr.end(); i++){
cout << i->data() << " ";
}
cout << "\n";
for (int i = ; i < vnumber.size(); i++){
cout << vnumber[i] << " ";
}
cout << "\n";
} bool Database::insertDatabase(string tablename, string name, string number){
string sql = "INSERT INTO " +
tablename +
" ( NAME, NUMBER)" +
" VALUES('" +
name +
"','" +
number +
"');";
char* zErrMsg = ;
int rc = sqlite3_exec(db, sql.c_str(), callback, , &zErrMsg);
if (rc != SQLITE_OK){
MessageBox(NULL, sql.c_str(), NULL, NULL);
return false;
}
return true;
} bool Database::queryDatabase(string tableName){
string sql = "SELECT * FROM ";
sql += tableName;
char* zErrMsg = ;
int rc = sqlite3_exec(db, sql.c_str(), callback, , &zErrMsg);
return true;
} void Database::dropTable(string tableName){
string sql = "DROP TABLE ";
sql += tableName;
char* zErrMsg = ;
int rc = sqlite3_exec(db, sql.c_str(), callback, , &zErrMsg);
} void Database::deleteData(string tableName){
string sql = "DELETE FROM ";
sql += tableName;
char* zErrMsg = ;
int rc = sqlite3_exec(db, sql.c_str(), callback, , &zErrMsg);
} void Database::changeData(string tableName){
string sql = "UPDATE TEST SET NAME = 'MYTEST'";
char* zErrMsg = ;
int rc = sqlite3_exec(db, sql.c_str(), callback, , &zErrMsg);
}

main.cpp:

 #include"Database.h"

 int main(){
Database* db = new Database;
db->initDatabase();
db->createTable("");
db->insertDatabase("TEST", "test", "");
db->changeData("vv");
db->queryDatabase("TEST");
db->showData();
db->deleteData("TEST");
db->dropTable("TEST");
delete db;
system("pause");
return ;
}

vs2013 SQLite数据库增删改查的更多相关文章

  1. (转)SQLite数据库增删改查操作

    原文:http://www.cnblogs.com/linjiqin/archive/2011/05/26/2059182.html SQLite数据库增删改查操作 一.使用嵌入式关系型SQLite数 ...

  2. Android SQLite 数据库 增删改查操作

    Android SQLite 数据库 增删改查操作 转载▼ 一.使用嵌入式关系型SQLite数据库存储数据 在Android平台上,集成了一个嵌入式关系型数据库--SQLite,SQLite3支持NU ...

  3. IOS sqlite数据库增删改查

    1.简单介绍 简单封装sqlite数据库操作类 BaseDB 用于完毕对sqlite的增删改查.使用前先导入libsqlite3.0.dylib库 2.BaseDB.h // // BaseDB.h ...

  4. 使用C#书写SQLite数据库增删改查语句(以及插入byte[]时遇到的问题总结)

    在没有使用SQLite这种轻量级的数据库之前,只使用过Sqlserver2008进行数据的增删改查,公司使用的是大型的ORACLE数据库,还没有真正的会使用它.那时候觉得数据库很庞大,然而遇到SQLi ...

  5. SQLite数据库增删改查操作

    一.使用嵌入式关系型SQLite数据库存储数据 在Android平台上,集成了一个嵌入式关系型数据库——SQLite,SQLite3支持NULL.INTEGER.REAL(浮点数字).TEXT(字符串 ...

  6. Android SQLite数据库增删改查操作

    一.使用嵌入式关系型SQLite数据库存储数据 在Android平台上,集成了一个嵌入式关系型数据库——SQLite,SQLite3支持NULL.INTEGER.REAL(浮点数字). TEXT(字符 ...

  7. SQLite数据库增删改查

    一:SQLite数据库简介: SQLite是一种轻量级的关系型数据库,官网:http://www.sqlite.org/. SQLite数据库文件存在于移动设备的一下目录中:data->data ...

  8. 通过API函数来控制SQLite数据库增删改查

    person类属性有Intenger id,String name,Intenger  age,相应的构造方法和set get方法. package com.xh.tx.dao; import and ...

  9. 通过Sql语句控制SQLite数据库增删改查

    person类属性有Intenger id,String name,Intenger  age,相应的构造方法和set get方法. package com.xh.tx.dao; import jav ...

随机推荐

  1. 粪发涂墙-redis1

    redis 核心就是 如果我的数据全都在内存里,我单线程的去操作 就是效率最高的,为什么呢,因为多线程的本质就是 CPU 模拟出来多个线程的情况,这种模拟出来的情况就有一个代价,就是上下文的切换, 对 ...

  2. 【struts 报错】 No action config found for the specified url

    1 type Exception report message org.apache.struts.chain.commands.InvalidPathException: No action con ...

  3. VMWare tools

    一.首先是安装VMWare tools1.以ROOT身份进入LINUX2.在虚拟机软件VMWARE状态栏中,点击 SETTING菜单下的ENABLE VMWARE TOOLS子菜单,此时在linux的 ...

  4. vue动态加载jQuery插件

    要先npm安装jQuery插件哦 window.$=$; window.jQuery=$; function loadJs(Url,callback){ var Nscript=document.cr ...

  5. 「luogu3380」【模板】二逼平衡树(树套树)

    「luogu3380」[模板]二逼平衡树(树套树) 传送门 我写的树套树--线段树套平衡树. 线段树上的每一个节点都是一棵 \(\text{FHQ Treap}\) ,然后我们就可以根据平衡树的基本操 ...

  6. UE4高级运动系统(Advanced Locomotion System V3)插件分析

    Advanced Locomotion System V3是虚幻商城的一款第三方插件.它相比UE4的基础走跑跳表现,实现了更多动作游戏里常用的运动特性,虽然价格定价不菲,依然备受关注.笔者试用了这款插 ...

  7. ASP.NET(C#) Json序列化反序列化帮助类Jsonhelper

    原文地址:https://ken.io/note/csharp-asp.net-jsonhelper using System; using System.Collections.Generic; u ...

  8. 29 对象&函数

    switch: 穿越: 没有判断结果的情况下执行下一个case的语句块,叫穿越 或者穿越: switch(s%10){ case 1: case 2: case 3: s++; break; defa ...

  9. fastJson javaBean和JSON对象相互转换

    fastjson的作用就是把java 对象转化为字符串,把字符串转化为java对象,然后方便进行后续的逻辑处理. java对象和json互相转换都是通过JSON对象操作的: JavaBean bean ...

  10. 【洛谷P3500】TES-Intelligence Test

    前言 先是这位神仙写了这道题 \(O(n\log n)\) 的做法.然后去他的博客上恰了一波. 然后发现这道题有 \(O(n)\) 的做法的.其实也不难. 题目 题目链接:https://www.lu ...