这篇文章主要讲解了“LINQ操作DataTable出现指定的转换无效问题怎么解决”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“LINQ操作DataTable出现指定的转换无效问题怎么解决”吧!

成都创新互联公司是专业的偃师网站建设公司,偃师接单;提供网站制作、网站建设,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行偃师网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!
代码
public static IEnumerable getEnumerable()    {    DataTable dt = getDatatable();    try   {     var query = from q in dt.AsEnumerable()     where q.Field("IPLocation") == "纯真网络 2008年6月20日IP数据"    select new    {     IPid = q.Field("IPid"),     IPFrom = q.Field("IPFrom"),     IPTo = q.Field("IPTo"),     IPCity = q.Field("IPCity"),     IPToNumber = q.Field("IPToNumber"),     IPFromNumber = q.Field("IPFromNumber")     };     return query;     }     catch    {   return null;    }   }       然后我在***做数据源绑定的时候,总是报System.InvalidCastException: 指定的转换无效的错误,无论用Gridview的自动生成列,还是Reapter的手动添加列,都有问题,***我查出生成的结果集就含有异常的存在,也就说再取结果集的时候,要慎重用如下写法:
IPid = q.Field("IPid"), IPFrom = q.Field ("IPFrom"), IPTo = q.Field ("IPTo"), IPCity = q.Field ("IPCity"), IPToNumber = q.Field ("IPToNumber"), IPFromNumber = q.Field ("IPFromNumber") 
我后来尝试了另一种写法:
IPid = q["IPid"].ToString(), IPFrom = q["IPFrom"].ToString(), IPTo = q["IPTo"].ToString(), IPLocation = q["IPLocation"].ToString(), IPCity = q["IPCity"].ToString(), IPToNumber = q["IPToNumber"].ToString(), IPFromNumber = q["IPFromNumber"].ToString()
一开始我调试也还是报System.InvalidCastException: 指定的转换无效这个错误,我调试了一段时间,也还是有问题,我在想是不是数据绑定控件的问题,后来我将原来的Gridview自动生成列换成了手动输入列:
代码
| ID | IPFrom | IPTo | IPLocation | City | IPToNumber | IPFromNumber | 
|---|---|---|---|---|---|---|
| <%#Eval("IPid")%> | <%#Eval("IPFrom")%> | <%#Eval("IPTo")%> | <%#Eval("IPLocation")%> | <%#Eval("IPCity") %> | <%#Eval("IPToNumber")%> | <%#Eval("IPFromNumber")%> | 
后来问题就解决了,我现在也不知道这个问题什么原因,为什么不支持自动产生列呢(等待高手帮忙解决)?
知道问题的所在了,然后就可以随心的处理DataTable里面的数据了,如下面一个简单的小例子:
代码
public static IEnumerable getEnumerable()     {    DataTable dt = getDatatable();    try   {   var query = from q in dt.AsEnumerable()     orderby long.Parse(q["IPid"].ToString()) descending     where q["IPid"].ToString() == "345058"    select new    {    IPid = q["IPid"].ToString(),    IPFrom = q["IPFrom"].ToString(),    IPTo = q["IPTo"].ToString(),    IPLocation = q["IPLocation"].ToString(),    IPCity = q["IPCity"].ToString(),    IPToNumber = q["IPToNumber"].ToString(),    IPFromNumber = q["IPFromNumber"].ToString()     };   return query;   //List list = new List();   //foreach (var q in query)   //{   //IPInfo model = new IPInfo();   //model.IPCity = q.IPCity;   //model.IPFrom = q.IPFrom;   //model.IPFromNumber = q.IPFromNumber;   //model.IPid = long.Parse(q.IPid);   //model.IPLocation = q.IPLocation;   //model.IPTo = q.IPTo;   //model.IPToNumber = q.IPToNumber;   //list.Add(model);   //}   //return list;    }    catch   {   return null;    }     }  感谢各位的阅读,以上就是“LINQ操作DataTable出现指定的转换无效问题怎么解决”的内容了,经过本文的学习后,相信大家对LINQ操作DataTable出现指定的转换无效问题怎么解决这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是创新互联,小编将为大家推送更多相关知识点的文章,欢迎关注!
文章标题:LINQ操作DataTable出现指定的转换无效问题怎么解决
文章分享:http://www.cqwzjz.cn/article/gecioe.html

 建站
建站
 咨询
咨询 售后
售后
 建站咨询
建站咨询 
 