代码: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. +(new Date())

    +(new Date()) 等于 new Date().getTime();展示 1561003191879 毫秒时间戳

  2. git密码相关问题

    一.解决:每次都需要输入账号密码 git config --global credential.helper store 二.后期git密码更改后,重置密码操作 git config --system ...

  3. CI 框架多表关联查询

    public function getCollectData($limit, $page, $search_user, $search_phone, $orderfield, $ordertype) ...

  4. 攻防世界 robots题

    来自攻防世界 robots [原理] robots.txt是搜索引擎中访问网站的时候要查看的第一个文件.当一个搜索蜘蛛访问一个站点时,它会首先检查该站点根目录下是否存在robots.txt,如果存在, ...

  5. acwing练习

    220. 最大公约数 给定整数N,求1<=x,y<=N且GCD(x,y)为素数的数对(x,y)有多少对. GCD(x,y)即求x,y的最大公约数. 输入格式 输入一个整数N 输出格式 输出 ...

  6. 20-02-27 hive表的几个问题

    1.hive表的动态分区 2.hive  表如何修改列名 3.group  by  对统计指标的影响  (group by 的本质) 4.row_number 对数据的影响

  7. 【C语言】将输入的10个整数逆序输出

    代码1: #include <stdio.h> int main() { ], b[]; int i,j; printf("请输入10个整数:\n"); ; i < ...

  8. 【MySQL】常用增删改查

    目录 1. 文件夹(库) 2. 文件(表) 3. 文件内容(数据) "@ ___ 1. 文件夹(库) # 增 create database db charset utf8; # 查 sho ...

  9. hadoop学习笔记(一):NameNade持久化和DataNode概念

    其中的fsimage 称为时点备份,又叫磁盘镜像快照,这个是NameNode的一个 持久化的方式之一:缺点,在内存数据序列化的时候比较慢 具体的过程:因为我们所知道的NameNode一般是存储在内存中 ...

  10. Windows Server 2012 R2 自动映射公共网络驱动器

    1.创建组织单位,在组织单位新建用户或者组 2.新建文件夹(名字无所谓,我这里起名一样方便测试) 3.对文件夹开启共享,设置要共享的用户或者组 4.打开组策略,找到对应的组织单位 5.创建GPO 6. ...