C#执行存储过程的简化-.NET教程-C#语言.doc 立即下载
2024-09-09
约8.1千字
约13页
0
42KB
举报 版权申诉
预览加载中,请您耐心等待几秒...

C#执行存储过程的简化-.NET教程-C#语言.doc

C#执行存储过程的简化-.NET教程-C#语言.doc

预览

免费试读已结束,剩余 8 页请下载文档后查看

5 金币

下载文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

编辑版word
编辑版word
编辑版word
C#执行存储过程的简化-.NET教程,C#语言
来源:作者:发布时间:2007-12-2610:42:08
HYPERLINK"http://www.sudu.cn/domain"域名注册
8年专业域名注册经验
com域名59元
HYPERLINK"http://www.sudu.cn/webhosting"虚拟主机
提供国际CDN流量,可免备案
超强控制面板,可开子站点
HYPERLINK"http://www.sudu.cn/vps"VPS主机
全国十余家优质机房可选
独立操作系统,无限开站点
下面的方法是我在实际研发中摸索出来的,能在非常大程度上简化调用存储过程的代码。首先来看一下c#调用存储过程的一般过程:1、打开数据库连接sqlconnection;2、生成一个sqlcommand;3、向命令对象填充参数;4、执行存储过程;5、关闭连接;6、其他操作。我这里讲的主要是简化第3步操作,最终在调用存储过程的时候只需要传递存储过程的名字和相应的参数值。调用示例如下:dbaccess.run("p_am_deletefile",newobject[]{loginid,request.userhostaddress,fileid});由于在填充参数的时候必须要两个值,一个是参数的名字,一个是参数的值。参数值是由外部传入的,不用考虑;而参数名称是和存储过程相关的东西,应该能由存储过程名称来确定而不用每次调用的时候写上一遍。对于这个问题,如果能将存储过程的参数保存到一个全局的地方,那么在调用存储过程的时候只要能根据存储过程的名字去索引就能了。具体实现的时候我是将这些信息保存在数据库访问组件里面,采用名字/值对的方式。代码如下:publicclassinfotable:nameobjectcollectionbase{publicobjectthis[stringkey]{get{return(this.baseget(key));}set{this.baseset(key,value);}}}。。。。。。protectedstaticinfotableprocinfotable=newinfotable();。。。。。。publicstaticinfotableprocinfotable{get{returnprocinfotable;}}这样的话,在实际调用存储过程的时候就只需要去查这张表就能知道存储过程的参数名了。实现代码如下:publicdatatablerun(stringprocname,object[]parms,refintretvalue){string[]paraminfo=(string[])(procinfotable[procname]);if(paraminfo==null){errorinfo.seterrorinfo("未取得"+procname+"的参数!");returnnull;}boolbopened=(dbconn.state==connectionstate.open);if(!bopened&&!connect()){returnnull;}datasetds=newdataset();try{sqlcommandcmd=newsqlcommand(procname,dbconn);cmd.commandtype=commandtype.storedprocedure;for(inti=0;i<parms.length&&i<paraminfo.length;++i){cmd.parameters.add(newsqlparameter(paraminfo[i],parms[i]));}sqlparameterparmsr=newsqlparameter("return",sqldbtype.int);parmsr.direction=parameterdirection.returnvalue;cmd.parameters.add(parmsr);sqldataadapteradp=newsqldataadapter(cmd);adp.fill(ds);retvalue=(int)(cmd.parameters["return"].value);}catch(exceptionex){errorinfo.seterrorinfo(ex.message);retvalue=-1;}if(!bopened)close();if(ds.tables.count>0)returnds.tables[0];elsereturnnull;}能看出,每个存储过程的参数列表存储为了一个string[]。接下来的工作就是将系统里头许多的存
查看更多
单篇购买
VIP会员(1亿+VIP文档免费下)

扫码即表示接受《下载须知》

C#执行存储过程的简化-.NET教程-C#语言

文档大小:42KB

限时特价:扫码查看

• 请登录后再进行扫码购买
• 使用微信/支付宝扫码注册及付费下载,详阅 用户协议 隐私政策
• 如已在其他页面进行付款,请刷新当前页面重试
• 付费购买成功后,此文档可永久免费下载
全场最划算
12个月
199.0
¥360.0
限时特惠
3个月
69.9
¥90.0
新人专享
1个月
19.9
¥30.0
24个月
398.0
¥720.0
6个月会员
139.9
¥180.0

6亿VIP文档任选,共次下载特权。

已优惠

微信/支付宝扫码完成支付,可开具发票

VIP尽享专属权益

VIP文档免费下载

赠送VIP文档免费下载次数

阅读免打扰

去除文档详情页间广告

专属身份标识

尊贵的VIP专属身份标识

高级客服

一对一高级客服服务

多端互通

电脑端/手机端权益通用