给你部分代码(一个销售函数)以作参考...
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连接进行查询时,依然会查询到这条空数据。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)