代码: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. C# 重载与重写

    重载(overload) 指调用同一方法名,但各方法中参数的数据类型.个数或顺序不同. public static int Add(int x,int y) { return x + y; } pub ...

  2. PAT 1014 Waiting in Line (模拟)

    Suppose a bank has N windows open for service. There is a yellow line in front of the windows which ...

  3. iOS 开发之提取图片的主色调用于更换应用主题颜色

    从刷爆 IT 圈的一个事件说起: 新闻:某互联网公司产品经理提出一个需求--要求APP开发人员做到软件根据用户的手机壳改变软件的主题颜色. What Fuck!还有这操作,PM,你过来,保证不打屎你. ...

  4. windows maven配置

    <?xml version="1.0" encoding="UTF-8"?> <!-- Licensed to the Apache Soft ...

  5. 世界协调时间(UTC)与中国标准时间

    整个地球分为二十四时区,每个时区都有自己的本地时间.在国际无线电通信场合,为了统一起见,使用一个统一的时间,称为通用协调时(UTC, Universal Time Coordinated).UTC与格 ...

  6. acm数论之旅---扩展欧几里得算法

    度娘百科说: 首先, ax+by = gcd(a, b) 这个公式肯定有解 (( •̀∀•́ )她说根据数论中的相关定理可以证明,反正我信了) 所以 ax+by = gcd(a, b) * k 也肯定 ...

  7. 部署java的spring boot项目(代码外包提供)

    部署java后台的spring boot 人脸识别系统的项目 基础环境准备: 硬件:内存4g  cpu 4核  硬盘200g  虚拟机 软件:CentOS 7.6  mysql 5.7.26  jdk ...

  8. 什么是Rogue Histogram?

    Rogue Histogram可以理解为AP的“流氓直方图”,这里大概记录了该AP附近的其他AP的信道和频宽. 例如如下图:可以通过show ap auto-rf 802.11a AP-name / ...

  9. P4710 平抛运动

    题目:https://www.luogu.org/problemnew/show/P4710 $$ v_x = v_{x_0} = v \ sin \ \theta, \  v_y = v_{y_0} ...

  10. php虚拟主机配置( 输入网址 对应 ip地址)

    1.启动http_vhost.conf文件 在httpd-conf中,#virtual hosts 去掉前面的井号 # Includeconf/extra/httpd_vhost.conf 2.配置h ...