如何将表值参数从.NET代码传递给存储过程我有一个MSSQLServer 2005数据库。在一些过程中,我将表参数作为nvarchar(用逗号分隔)传递给存储的proc,并在内部划分为单个值。我将它添加到SQL命令参数列表中,如下所示:cmd.Parameters.Add("@Logins", SqlDbType.NVarchar).Value = "jim18,jenny1975,cosmo";我必须将数据库迁移到SQLServer 2008。我知道有表值参数,我知道如何在存储过程中使用这些参数。但我不知道如何在SQL命令中将一个参数列表传递给参数列表。是否有人知道Parameters.Add程序?或者还有其他方式传递这个参数?
3 回答
ibeautiful
TA贡献1993条经验 获得超6个赞
DataColumnOrdinaltable-valued parameter
CREATE TYPE NodeFilter AS TABLE ( ID int not null Code nvarchar(10) not null,);
table.Columns["ID"].SetOrdinal(0);// this also bumps Code to ordinal of 1// if you have more than 2 cols then you would need to set more ordinals
手掌心
TA贡献1942条经验 获得超3个赞
public static DataTable ToTableValuedParameter<T, TProperty>(this IEnumerable<T> list, Func<T, TProperty> selector)
{
var tbl = new DataTable();
tbl.Columns.Add("Id", typeof(T));
foreach (var item in list)
{
tbl.Rows.Add(selector.Invoke(item));
}
return tbl;
}- 3 回答
- 0 关注
- 800 浏览
添加回答
举报
0/150
提交
取消
