问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

C#关于DataAdapter 的添加参数问题 在线等 详细答完给200分

发布网友 发布时间:2022-04-08 10:26

我来回答

5个回答

热心网友 时间:2022-04-08 11:55

1、private SqlDataAdapter CreateDataAdaper(string procName, SqlParameter[] prams)
这个函数作用是执行一个带参数的存储过程并返回
一个存储过程有多个参数,当然你可以固定死设定两个参数比如
CreateDataAdaper(string procName, SqlParameter id,SqlParameter name)
但是为了方法的公用,采用SqlParameter[]这样一个组,在组中的话就可以灵活设置参数的数量,但是方法却可以公用
2、foreach (SqlParameter parameter in prams)
dap.SelectCommand.Parameters.Add(parameter)
这个遍历很简单,就是从刚才说的SqlParameter[]中把参数一个一个的取出来,让后在SelectCommand的参数中添加进去
3、dap.SelectCommand.Parameters.Add(……)
这个是具体实例化一个参数,包括该参数的名称、类型、是否返回值等的信息,当然你也可以这么写
SqlParameter a=new SqlParameter(……);
dap.SelectCommand.Parameters.Add(a);

4、回到你的方法调用CreateDataAdaper()
你可能要这么做
SqlParameter[] paras=new SqlParameter[3]//设定三个参数
paras[0]=new SqlParameter(……)//设定第一个参数信息,当然你也可以调用你问题中写的MakeInParam()这个方法构造具体参数
paras[0]=MakeInParam(……);
paras[1],paras[2]依次类推

最后你再调用应该是这样
SqlDataAdapter adapter=CreateDataAdaper("你的存储过程名",paras);

6、dap.SelectCommand.Parameters.Add(parameter);
}
//加入返回参数
dap.SelectCommand.Parameters.Add(new SqlParameter("ReturnValue", SqlDbType.Int, 4,
ParameterDirection.ReturnValue, false, 0, 0,
string.Empty, DataRowVersion.Default, null)); return dap;

至于后面添加查询参数和添加查询结果参数
我觉得只是为了区分故意不写到一起而已
在我看来你完全可以把查询结果参数也搞到那个参数组中去

这样讲楼主明白了么?

热心网友 时间:2022-04-08 13:13

private SqlDataAdapter CreateDataAdaper(string procName, SqlParameter[] prams)

看参数.prams是个数组.在接收参数前已经对这些参数进行了实例.
所以得用foreach来将它们逐个添加.一个都不能少.

而dap.SelectCommand.Parameters.Add(new...)
只是添加一个新实例的参数(SqlParameter).并声明该参数的参数名.类型等等.

热心网友 时间:2022-04-08 14:48

一个SelectCommand很能包含多个参数。
在这个问题中,包含若干由MakeInParam函数构造的查询参数,和一个查询结果参数。
你问的两个函数,第一个是添加所有查询参数,第二个是添加查询结果参数(参数方向ParamterDirection不同)。

热心网友 时间:2022-04-08 16:39

//新建表
DataTable dt=new DataTable();

//定义表结构
dt.Columns.Add("Id",typeof(System.Int32));
dt.Columns.Add("Code",typeof(System.String));
dt.Columns.Add("Name",typeof(System.String));

//添加新行
for(int i=0;i<=3;i++)
{
DataRow dr=dt.NewRow();
dr[0]=i;
dr[1]="s"+i;
dr[2]="sic"+i;
dt.Rows.Add(dr);
}

热心网友 时间:2022-04-08 18:47

在这上边看代码,太费劲了。
你把代码发给我,我给你调试下,就知道哪错了。
qq:274107336
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
你那里是不是有美国COSO内部控制整体框架中文版?能否发给我,谢谢!万分... 从实体店买的衣服当时穿着走的还可以换吗? 2020S1赏金令中的开卡奖励是介绍_2020S1赏金令中的开卡奖励是是什么... 笔记本外接显示器开机慢的问题及解决方法 笔记本外接显示器开机不能自动打开 笔记本电脑黑屏外接无显示为什么笔记本电脑连接另一个显示器后电记本... 百鸟朝凤是一首 商转公都有哪些银行 哪些银行能商转公 商转公哪些银行支持 关于红军长征不怕牺牲的故事 如何提高xp启动和运行速度,xp系统优化 如何使XP系统的电脑运行速度快 如何让电脑不卡(xp系统) 如何把XP系统优化到最佳 怎样设置电脑才能使电脑最流畅运行!系统xp word和wps能并存吗,为什么在word里写的文件打开后是在wps里打开的 word 文档用wps 能打开吗 使用u盾跨行转账需要扣手续费嘛 农安发长春长吉物流几天能到 长春长吉货运可以代收货款吗 2016荆州中考监利县成绩排名分数一分一档表到那里能查到 公安一中的录取分数线 桂林旅游高等学院导游专业是是本科吗?预计2016年分数在哪个区间? 高考成绩一分一档统计表 何时公布 今年最低分要多少分才能上桂林理工大学 郑州童车批发市场在哪? 沈阳最大的童车批发市场? 2016高考553分能上哪所大学 成都童车批发在那里 我想买个平板电脑,可是有两种,一种是WLAN版,另一种是WIFI版,不知道两者有何区别,哪个好,哪个实用? WIFI跟WLAN有什么区别? 请问WIFI与WLAN有什么区别?高手回答! 怎样能吧衣服上的蓝油笔迹去掉或变淡 烟台大樱桃蹿升为生鲜中“网红”? 中国樱桃的产地都有哪些?大连樱桃的特点? 一天可以吃一斤车厘子吗 有哪些采用樱桃轴,但又不只是仅仅樱桃轴一个卖点的机械键盘推荐呢? 给樱桃做广告,要怎样表达它水果之王的特点? 斯坦勒樱桃品种有什么特点? 那个网站里面有好看的轮滑logo 求轮滑社LOGO和轮滑图片,设计轮滑社服,Sc_轮滑社,意思是skating club,求原创 !!!急!!!! ETC充值卡现在还能用吗? 哪里有轮滑素材,急急急 某轮滑俱乐部起名 在高速公路收费站办理的etc储值卡能充值吗?怎充 大货车办etc卡了,原来办理的充值卡还可以用吗? 北京etc充值卡2020年就不能人工充值了吗? 轮滑鞋没有吊牌怎样查日期 买车时的绿色本本丢了怎么办