---跟着人家学习,下面报错,搞不懂为什么

finer 2017-11-18 03:49:54
以下代码报错,提示
public List<IDictionary> GetList(string SearchKey)
{


DataTable dt;
string connStr = ConfigurationManager.ConnectionStrings["udDJerpConnStr"].ConnectionString;
string sqlStr = "select * from ut_OrderDeliveryDetail where materialCodeCustomer like '%" + SearchKey + "%'";
using (SqlConnection con = new SqlConnection(connStr))
{
con.Open();
SqlDataAdapter da = new SqlDataAdapter(sqlStr, con);
dt = new DataTable();
da.Fill(dt);
}
var result= (from c in dt.AsEnumerable()
select new
{
Id = c.Field<int>("Id"),
CustomerName = c.Field<string>("CustomerName"),
MaterialCodeCustomer = c.Field<string>("MaterialCodeCustomer")

}).ToList();

return result.ToList<IDictionary>();
}


以下代码可运行:
private List<IDictionary> ConvertToDictionary(DataTable dtObject)
{
var columns = dtObject.Columns.Cast<DataColumn>();

var dictionaryList = dtObject.AsEnumerable()
.Select(dataRow => columns
.Select(column =>
new { Column = column.ColumnName, Value = dataRow[column] })
.ToDictionary(data => data.Column, data => data.Value)).ToList().ToArray();

return dictionaryList.ToList<IDictionary>();
}
...全文
182 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
编码爱好者 2017-11-20
  • 打赏
  • 举报
回复
.Select(dataRow => columns 看错了 抱歉
编码爱好者 2017-11-20
  • 打赏
  • 举报
回复
ToDictionary(data => data.Column, data => data.Value)).ToList().ToArray(); value后面怎么会有两个括号 前面也没有开始的括号吧
正怒月神 版主 2017-11-20
  • 打赏
  • 举报
回复
我看这代码。总觉得奇怪。。。感觉少了括号的样子。
exception92 2017-11-20
  • 打赏
  • 举报
回复
var result= (from c in dt.AsEnumerable() select new { Id = c.Field<int>("Id"), CustomerName = c.Field<string>("CustomerName"), MaterialCodeCustomer = c.Field<string>("MaterialCodeCustomer") }).ToList(); return result.ToList<IDictionary>(); 第一个ToList将产生一个匿名类型的集合,包含你定义的那三个字段; 第二个ToList 其实已经不能启作用了,它的<T> 这时候其实是个匿名类,而不是IDictionary。
圣殿骑士18 2017-11-18
  • 打赏
  • 举报
回复
很明确的提示,匿名类型 'a 不能转化为IDictionary。 你案例里,是先ToDictionary,再ToList的。

62,041

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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