EF var出来的list集怎么存入SqlParameter[]?

morliz子轩 2020-06-04 01:57:33
背景如下:
db中有参数表如下:


如何将表中的这两个值,以传参的方式存入SqlParameter[]?
以下是我的源码:

private void BindData()
{
using(CusModelContainer db = new CusModelContainer())
{
List<bgdatasrc> rBarlist = db.bgdatasrcs.Where(x => x.rptbarid == _rptbarid).ToList(); //本级项目主表
string dsrcno = rBarlist.Select(a => a.dsrcno).FirstOrDefault(); //项目编号
string dsrcna = rBarlist.Select(b => b.dsrcna).FirstOrDefault(); //项目名称
int dsrctype = rBarlist.Select(c => c.dsrctype).FirstOrDefault(); //数据源类型

var dsrclist = db.vDsrcdtls.Where(x => x.dsrcno == dsrcno).Select(x => new
{
x.para,
x.paravalue
}).ToList(); //项目参数表

System.Data.SqlClient.SqlParameter[] para = dsrclist.ToArray();


/*
System.Data.SqlClient.SqlParameter[] para =
{
new System.Data.SqlClient.SqlParameter("@dsrcno",dsrcno)
};
*/
DataSet ds = new DataSet();

string sql = "exec [" + dsrcna + "] " + para;


}

}

主要是我是想实现这样的情景:
参考https://www.cnblogs.com/tsql/p/6518699.html


还请大佬给点意见,指导一下
...全文
157 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
morliz子轩 2020-06-04
  • 打赏
  • 举报
回复
引用 5 楼 正怒月神 的回复:
我的是 SqlParameter[] 而你的是 List<SqlParameter>
我看见了,见笑见笑,大佬,呵呵: 最终的改法是这样的:

                System.Data.SqlClient.SqlParameter[] paralist = dsrclist.Select(d => new System.Data.SqlClient.SqlParameter()
                {
                    ParameterName = d.para,
                    Value = d.paravalue
                }).ToArray();
已经OK了,非常感谢
正怒月神 2020-06-04
  • 打赏
  • 举报
回复
引用 3 楼 morliz子轩 的回复:
[quote=引用 2 楼 正怒月神 的回复:] 问题的关键不是怎么转,而是select时,去指定拿出来替换成什么类型。 你照着改改吧。
大佬,我按你说的改了,成这样。这是哪的问题啊?[/quote] 我的是 SqlParameter[] 而你的是 List<SqlParameter>
morliz子轩 2020-06-04
  • 打赏
  • 举报
回复
引用 2 楼 正怒月神 的回复:
问题的关键不是怎么转,而是select时,去指定拿出来替换成什么类型。 你照着改改吧。
我这样写,就没毛病了:

                List<System.Data.SqlClient.SqlParameter> paralist = dsrclist.Select(d => new System.Data.SqlClient.SqlParameter()
                {
                    Value = d.paravalue,
                    ParameterName = d.para
                }).ToList();
morliz子轩 2020-06-04
  • 打赏
  • 举报
回复
引用 2 楼 正怒月神 的回复:
问题的关键不是怎么转,而是select时,去指定拿出来替换成什么类型。 你照着改改吧。
大佬,我按你说的改了,成这样。这是哪的问题啊?
正怒月神 2020-06-04
  • 打赏
  • 举报
回复
问题的关键不是怎么转,而是select时,去指定拿出来替换成什么类型。 你照着改改吧。
正怒月神 2020-06-04
  • 打赏
  • 举报
回复
SqlParameter[] s = myList.Select(x=> new SqlParameter() {Value=xxx,ParameterName=xxx }).ToArray();

110,561

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧