c语言控件编程,C语言数据库编程-dts迁移到本地-WinFrom控件库|.net开源控件库|HZHControls官网...

----摘自个人C语言数据库项目报告

3.4逻辑结构的SQL语句实现

创建基本表:

3.2021年05月21日建立商品表:

create table goods(goods_id int primary key,goods_types varchar,goods_name varchar,goods_price varchar,appraise text);

3.2021年05月21日建立卖家表:

create table seller(seller_id int primary key,seller_name varchar,seller_sex varcahr,phone int,address text)

3.2021年05月21日建立买家表:

create table buyer(buyer_id int primary key,buyer_name varchar,buyer_sex varchar,buyer_phone int,buyer_address text

3.2021年05月21日建立账单视图表:

Create view bill as select buyer_id,buyer_name,buyer_address,goods_id,goods_name,goods_price from buyer,goods;

3.2021年05月21日建立店铺基本表:

create table store(store_id int primary key, store_name text);

3.2021年05月21日建立卖家具体详情视图表:

create view seller_message as select seller_id, seller_name,seller_sex,goods_name,store_name,store_address from seller,store,goods;

3.2021年05月21日插入数据:

本系统有用户自定义插入数据,无需在C语言里面写入要插入的数据,用了本书上的sqlite3_mprintf格式化输入函数来实现。

Sql=sqlite3_mprintf(“insert into  表名 values(%格式化)“, 格式化的变量); 此处%d整型无需引号,%s字符型加单引号。

例如本系统中插入数据:char *pSQL=sqlite3_mprintf("insert into store values(%d,'%s' )",store_id,store_name);

3.2021年05月21日查找数据:

自定义查找:sqlite3_mprintf(“select 列名 from 表名 where 列名= 格式化”,格式变量);

例如本系统中查找数据:

char  *pSQL= sqlite3_mprintf("select store_id, store_name from store where store_id =  %d ",col_value);

3.2021年05月21日删除数据:

自定义删除:sqlite3_mprintf(“delete from 表名 where 列名=格式化”,格式化变量);

例如本系统中自定义删除数据:char *pSQL=sqlite3_mprintf("delete from goods where goods_id = %s ",col_value) ;

删除表:drop table 表名。

项目中代码:

/*建立第1张表 goods*//voidcreate_goods(){int rc; //rc为返回值,判断函数是否执行成功 rc=0函数执行成功,rc !=0函数执行失败 sqlite3 *db; //SQLite数据库指针 sqlite3结构体 *db指向sqlite3结构体的指针 char *pFileName = "Taobao_Shopping.db"; //数据库文件名 char * zErr; /*定义返回错误信息的变量*/rc= sqlite3_open(pFileName, &db); /*打开数据库*/ if(rc) /*假,关闭数据库*/{ printf("open database failed"); sqlite3_close(db); }char *pSQL="create table goods(goods_id int primary key,goods_types text,goods_name text,goods_price text,appraise text)"; rc= sqlite3_exec(db, pSQL, 0,0, &zErr); /*sqlite执行接口实现表的创建*/ if(rc!=SQLITE_OK) {if (zErr!=NULL) { printf("SQL error:%s",zErr); sqlite3_free(zErr);/*释放错误信息所占用的空间*/} } sqlite3_close(db); system("pause");system("cls");printf("提示:

商品表已建立!"); goods();}录入商品信息//voidgoods_write(){//数组存储字符串 intgoods_id;char goods_types[100];char goods_name[100];char goods_price[100];char appraise[100];intrc; sqlite3*db; //SQLite数据库指针 char *pFileName = "Taobao_Shopping.db"; //数据库文件名 rc = sqlite3_open(pFileName, &db); /*打开数据库*/ if(rc) /*假,关闭数据库*/{ printf("open database failed"); sqlite3_close(db); }char * zErr; /*定义返回错误信息的变量*/printf("请依次录入以下信息

商品编号,商品种类,商品名称,商品价格,商品评论"); scanf("%d%s%s%s %s",&goods_id,&goods_types,&goods_name,&goods_price ,&appraise);//格式化输入函数,以变量列表的方式插入到SQL语句中 char *pSQL=sqlite3_mprintf("insert into goods values('%d','%s', '%s','%s', '%s');",goods_id,goods_types,goods_name,goods_price ,appraise); rc= sqlite3_exec(db,pSQL,0,0,&zErr); /*执行完成数据的插入*/ if(rc) //rc=0 {printf("商品信息录入失败!");}else{printf("商品信息录入成功!");} sqlite3_close(db); system("pause"); system("cls"); goods();}///商品自定义删除/voidgoods_del1(){intrc; sqlite3*db;char *pFileName = "Taobao_Shopping.db";char *zErr;char col_value[5]; rc= sqlite3_open(pFileName, &db); /*打开数据库*/ if(rc) /*假,关闭数据库*/{ printf("open database failed"); sqlite3_close(db); } printf("请输入要删除的商品编号"); scanf("%s",&col_value);char *pSQL=sqlite3_mprintf("delete from goods where goods_id = %s",col_value) ; rc= sqlite3_exec(db,pSQL,0,0,&zErr);if(rc) {printf("删除商品信息失败!");}elseprintf("删除商品信息成功!"); system("pause"); system("cls"); goods_del(); }

商品表修改voidgoods_update(){intrc; sqlite3*db;char *pFileName = "Taobao_Shopping.db";char *zErr;char col_name[10];char new_value[10];intgoods_id; rc= sqlite3_open(pFileName, &db); /*打开数据库*/ if(rc) /*假,关闭数据库*/{ printf("open database failed"); sqlite3_close(db); } printf("请输入原来的列名,要修改的列名的列值,以及本商品编号"); //修改所在行的数值 scanf("%s%s%d",&col_name,&new_value,&goods_id);//scanf()里面的格式化字符型跟整形 输入到sqlite3_mprintf()格式化输入 字符型跟整形 goods_id定义为数组不能正确执行结果。或者是goods_id定义为字符型解决问题 char *pSQL=sqlite3_mprintf("update goods set '%s' = '%s' where goods_id = %d", col_name,new_value,goods_id);///%s字符型加单引号,数字可以不加rc= sqlite3_exec(db,pSQL,0,0,&zErr);if(rc) {printf("修改商品信息失败!"); }elseprintf("修改商品信息成功!"); sqlite3_close(db); system("pause"); system("cls"); goods(); }//查询商品表信息//voidgoods_find1(){intrc; sqlite3*db; //SQLite数据库指针 sqlite3结构体 *db指向sqlite3结构体的指针 char *pFileName = "Taobao_Shopping.db";char * zErr; /*定义返回错误信息的变量*/ char **result;introws, cols;intcol_value; rc= sqlite3_open(pFileName, &db); /*打开数据库*/ if(rc) /*假,关闭数据库*/{ printf("open database failed"); sqlite3_close(db); } printf("请输入商品编号");//根据goods_id 查询那一行的数据scanf("%d",&col_value);char *pSQL= sqlite3_mprintf("select goods_id,goods_types,goods_name,goods_price ,appraise from goods where goods_id = %d",col_value); rc= sqlite3_get_table(db, pSQL, &result, &rows, &cols, &zErr);//sqlite3_get table()无回调函数printf("查询结果:");for(int i=0; i<=rows; i++)//行{ printf("");for(int j=0; j

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值