SQLITE3 在VCMFC 中使用
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
SQLITE3在VC/MFC中使用
在VC工程目录下设置Link L/对象类模块为sqlite3.lib
c/C++分类precompiled header选择不使用预补偿页眉
首先将SQLITE3的七个文件放在和vc工程文件同一目录下
在工程中加入CppSQLite3DB.cpp和CppSQLite3DB.h文件
#include"CppSQLite3.h"
extern CppSQLite3DB db;/////数据库对象
remove("c:\\test.db");
db.open("c:\\test.db");///打开数据库文件
建立表格:
db.execDML("create table Customer(CustomerName char(50),RoomNumb er int,CustomerId int,ComeTime int,Money int);");
db.execDML("create table Room(RoomNumber int,RoomPrice int,Room State char[20]);");
db.execDML("create table Manager(ManagerName char[20],PassWord int); ");
插入数据:
string szCmd;
string szName=m_data1;
szCmd="insert into Customer values(";
szCmd+="'";
szCmd+=szName;
szCmd+="'";
szCmd+=",";
sprintf(a,"%d",m_data2);
szCmd+=a;
szCmd+=",";
sprintf(b,"%d",m_data3);
szCmd+=b;
szCmd+=",";
sprintf(c,"%d",m_data4);
szCmd+=c;
szCmd+=",";
sprintf(d,"%d",m_data5);
szCmd+=d;
szCmd+=");";
db.execDML(szCmd.c_str());/////////////插入SQL语句
MessageBox("提交成功,请继续!");
更新数据:
char k[20];//提交后更新房间信息
string szCkd;
szCkd="update Room set RoomState='notnull'whe re RoomNumber=";
sprintf(k,"%d",m_data2);
szCkd+=k;
szCkd+=";";
db.execDML(szCkd.c_str());//////////插入SQL语句
查询数据:
CppSQLite3Query q=db.execQuery("select*from Customer;");
while(!q.eof()){
UpdateData(true);
if(m_data1==q.getIntField(1))
{
s.m_data1=q.getStringField(0);
s.m_data2=q.getIntField(1);
s.m_data3=q.getIntField(2);
s.m_data4=q.getFloatField(3);
s.m_data5=q.getIntField(4);
s.DoModal();
UpdateData(false);
break;}
q.nextRow();
if(q.eof()==true)
MessageBox("本旅馆无该房间!");
}
删除数据:
char a[20];
sprintf(a,"%d",m_data2);
string szCmd;
szCmd="delete from Room where RoomNumber="; szCmd+=a;
szCmd+=";";
int b=0;
b=db.execDML(szCmd.c_str());
if(b==0)
MessageBox("操作错误,没有该房间信息");
else
MessageBox("删除房间信息成功");