首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQLCLR动态列?

SQLCLR动态列?
EN

Stack Overflow用户
提问于 2013-08-29 09:31:39
回答 1查看 700关注 0票数 1

Context SQLServer 2012,Visual 2010。

我不知道这是否可能,但我正在尝试动态地生成返回表中的列。

代码语言:javascript
复制
List<object> columnsInfo = new List<object>();      
foreach (string entry in poodle.getKs())
{
    columnsInfo.Add( new SqlMetaData(entry, SqlDbType.Text));
}

poodle.getKs()给出了字符串数组中的列名列表。

这就是我感到困惑的地方。我正在尝试将对象列表转换为SqlMetaData数组,然后将其转换为SqlDataRecord,以便分配给记录变量。

代码语言:javascript
复制
SqlDataRecord record = (SqlDataRecord)columnsInfo.ToArray<SqlMetaData>(); 

我在构建过程中遇到的错误是

代码语言:javascript
复制
Instance argument: cannot convert from 'System.Collections.Generic.List<object>' to 'System.Collections.Generic.IEnumerable<Microsoft.SqlServer.Server.SqlMetaData>'    

代码语言:javascript
复制
'System.Collections.Generic.List<object>' does not contain a definition for 'ToArray' and the best extension method overload 'System.Linq.Enumerable.ToArray<TSource>(System.Collections.Generic.IEnumerable<TSource>)' has some invalid arguments  

然而,这是我的C#技能和理解失败的时刻。我做错了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-08-29 09:53:42

好吧,算出来

代码语言:javascript
复制
List<SqlMetaData> columnsInfo = new List<SqlMetaData>(); 

foreach (string entry in poodle.getKs())
{
    columnsInfo.Add( new SqlMetaData(entry, SqlDbType.Text));
}

SqlDataRecord record = new SqlDataRecord(columnsInfo.ToArray<SqlMetaData>()); 

也很好地装载了数据。现在,看看SQLServer是否会消耗它或barf。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18507160

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档