谁知道用c语言向数据库做增删改查吗?

谁知道用c语言向数据库做增删改查吗?,第1张

我曾经写过C语言的数据库系统..

给你部分代码(一个销售函数)以作参考...

void

book_out()

//销售函数

{

char

temp

EXEC

SQL

BEGIN

DECLARE

SECTION

/*主变量定义开始.*/

int

Hout_shuliang

int

Hshuliang///////////

char

Hbook_id[11]

EXEC

SQL

END

DECLARE

SECTION

/*主变量定义结束*/

lab3:

printf("请输入图书编号:")

scanf("%s",&Hbook_id)

printf("请输入卖出本数:")

scanf("%d",&Hout_shuliang)

//先将库存量取出到主变量

EXEC

SQL

select

book_shuliang

into

:Hshuliang

from

book_kucun

where

book_id=:Hbook_id

if(Hshuliang<Hout_shuliang)

//假如库存不足,销售不成功.

{

printf("输入有误.没那么多库存,请重新输入.\n")

goto

lab3

}

//将销售记录插入到book_out(销售表)数据表.

EXEC

SQL

insert

into

book_out

values(:Hbook_id,:Hout_shuliang,GETDATE())

EXEC

SQL

COMMIT

TRANSACTION

/*事务提交*/

printf("售出成功,输入Y继续输入其他要售出的书.其他键返回主菜单:")

getchar()//////////////////////////

scanf("%c",&temp)

if(temp=='y'||temp=='Y')

goto

lab3

}

一、首先处理好数据库连接字串

Excel2000-2003: string connStr = "Microsoft.Jet.Oledb.4.0Data Source='c:\test.xls'Extended Properties=\"Excel 8.0HDR=YesIMEX=1\""

Excel2007: string connStr = "Microsoft.Ace.OleDb.12.0Data Source='c:\test.xlsx'Extended Properties=\"Excel 12.0HDR=YesIMEX=1\""

其中:

HDR ( Header Row )设置:

若指定值为Yes,代表 Excel 档中的工作表第一行是栏位名称

若指定值为 No,代表 Excel 档中的工作表第一行就是资料了,没有栏位名称

IMEX ( IMport EXport mode )设置

当 IMEX=0 时为"汇出模式",这个模式开启的 Excel 档案只能用来做"写入"用途。

当 IMEX=1 时为"汇入模式",这个模式开启的 Excel 档案只能用来做"读取"用途。

当 IMEX=2 时为"连结模式",这个模式开启的 Excel 档案可同时支援"读取"与"写入"用途。

二、进行表格数据的查询、插入和更新:

(假设Excel文件text.xls中存在Excel表单tree,有2列分别为id,name)

1、查询

String sql = "select id, name from [tree$]"

String sql = "select id, name from `tree$`

2、插入

String sql = "insert into [tree$] (id,name) values(1,'testname')

3、更新

String sql = "update [tree$] set name='name2' where id=1

4、数据的删除

在OleDB的连接方式下,不可以使用delete from 语句来删除某表中的某一条记录。确切的说,在此模式下,将无法删除表中的记录。即使用update语句将所有的字段写成null,打开excel文件后依然会发现保留了该空行,而且在使用oleDB连接进行查询时,依然会查询到这条空数据。

[root@tian connect_DB]# vi connect_db.c

//

注:在

redhat4

中所有的头文件默认到

/usr/include

中查找

!

#include <unistd.h>

#include <arpa/inet.h>

#include <stdio.h>

#include <stdlib.h>

#include <string.h>

#include <sys/types.h>

#include <sys/socket.h>

#include <netinet/in.h>

#include <mysql/mysql.h>

#include <signal.h>

#include <errno.h>

#include <syslog.h>

MYSQL mysql

main()

{

char host[32]="localhost"

char user[32]="root"

char passwd[32]="root"

char dbname[32]="test"

if( mysql_init(&mysql) == NULL )


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6812255.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-28
下一篇 2023-03-28

发表评论

登录后才能评论

评论列表(0条)

保存