我能找到的(任意位置)从SQL查询获取结果到本地变量的最佳解决方案是使用NULL List<dynamic>
或IEnumerable<dynamic>
变量声明。使用NULL局部变量在列表中使用NULL <dynamic> C#
通过执行类似创建变量:
@{
try
{
Database db = Database.Open("name"); // name of connectionString configured in web.config
string myQuery = "EXEC dbo.Get_Results @[email protected], @[email protected]";
myVariable = db.Query(myQuery, @Param1, @Param2);
db.Close();
db.Dispose();
}
catch (Exception ex)
{
// Do something
}
,让我这样做如下:
@{
IEnumerable<dynamic> myVariable = null;
}
的变量可以从像数据库查询得到的值
@if(myVariable != null)
{
foreach (var row in myVariable)
{
// Do something
}
}
这是完美的工作,但我仍然好奇的是如何做s使用List<dynamic>
作为使用IEnumerable<dynamic>
的替代方法。
什么是List<dynamic>
等效解决方案,我用于IEnumerable<dynamic>
?
我知道我的问题本身非常简单,但我花了很长的时间让过去试图解决不能隐式转换错误,当我试图创造一种可以从db.Query(commandText)
收到成果转化A级一个预先声明的变量。所以我认为我应该提供更多的细节以防止其他人试图找出相同或相似的东西。我在IEnumerable<dynamic>
的无关话题中找到了我的解决方案,这让我的眼睛更加简单地解决了我试图解决的问题。
不要使用String.Format()来构建像那样的sql字符串。这很糟糕**。 –
@JoelCoehoorn:他实际上在不必要地使用它。 – SLaks
我之前一直在尝试的'List'解决方案让我使用它。我用'IEnumerable '做的方式不需要使用String.Format。我正在修复我的代码示例。谢谢。 –
cusman