成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

LINQ操作DataTable出現指定的轉換無效問題的解決

開發 后端
本文將為大家介紹LINQ操作DataTable出現指定的轉換無效錯誤的解決方法,希望對大家有所幫助。

51CTO開發頻道向您推薦《LINQ教程-LINQ to SQL技術精解》,以便于您更好的理解這篇文章。

下面進入正題,說說我在開發過程遇到的問題 “LINQ操作DataTable的問題 ”。

在平時的工作中,可能有很多情況下要對DataTable的里面的數據進行處理,最簡單的例子如:對DataTable中的某個字段進行排序,根據條件篩選DataTable中的數據。。。,例子很多,下面我們看看如何處理的:

這是我最初寫的代碼:

代碼 

  1. public static IEnumerable getEnumerable()   
  2.  {  
  3.   DataTable dt = getDatatable();  
  4.   try 
  5.   {  
  6.    var query = from q in dt.AsEnumerable()  
  7.    where q.Field<string>("IPLocation") == "純真網絡 2008年6月20日IP數據" 
  8.    select new 
  9.    {  
  10.    IPid = q.Field<int>("IPid"),  
  11.    IPFrom = q.Field<string>("IPFrom"),  
  12.    IPTo = q.Field<string>("IPTo"),  
  13.    IPCity = q.Field<string>("IPCity"),  
  14.    IPToNumber = q.Field<string>("IPToNumber"),  
  15.    IPFromNumber = q.Field<string>("IPFromNumber")  
  16.    };  
  17.    return query;  
  18.    }  
  19.    catch 
  20.    {  
  21.  return null;  
  22.   }  
  23.  } 

然后我在***做數據源綁定的時候,總是報System.InvalidCastException: 指定的轉換無效的錯誤,無論用Gridview的自動生成列,還是Reapter的手動添加列,都有問題,***我查出生成的結果集就含有異常的存在,也就說再取結果集的時候,要慎重用如下寫法:

  1. IPid = q.Field<int>("IPid"),  
  2. IPFrom = q.Field<string>("IPFrom"),  
  3. IPTo = q.Field<string>("IPTo"),  
  4. IPCity = q.Field<string>("IPCity"),  
  5. IPToNumber = q.Field<string>("IPToNumber"),  
  6. IPFromNumber = q.Field<string>("IPFromNumber"

 我后來嘗試了另一種寫法:

  1. IPid = q["IPid"].ToString(),  
  2. IPFrom = q["IPFrom"].ToString(),  
  3. IPTo = q["IPTo"].ToString(),  
  4. IPLocation = q["IPLocation"].ToString(),  
  5. IPCity = q["IPCity"].ToString(),  
  6. IPToNumber = q["IPToNumber"].ToString(),  
  7. IPFromNumber = q["IPFromNumber"].ToString() 

一開始我調試也還是報System.InvalidCastException: 指定的轉換無效這個錯誤,我調試了一段時間,也還是有問題,我在想是不是數據綁定控件的問題,后來我將原來的Gridview自動生成列換成了手動輸入列:

代碼 

  1. <table  align="center" width="100%" cellpadding="0" cellspacing="0" style="border: Gray 1px solid; margin-top:5px; margin-bottom:10px"> 
  2.    <asp:Repeater ID="rpTest" runat="server"> 
  3.    <HeaderTemplate> 
  4. <tr> 
  5.    <th style=" background-color:Gray; color:White;border: Gray 1px solid;text-align:center">ID</th> 
  6.    <th style=" background-color:Black; color:White;border: Gray 1px solid;text-align:center">IPFrom</th> 
  7.    <th style=" background-color:Black; color:White;border: Gray 1px solid;text-align:center">IPTo</th> 
  8.    <th style=" background-color:Black; color:White;border: Gray 1px solid;text-align:center">IPLocation</th> 
  9.    <th style=" background-color:Black; color:White;border: Gray 1px solid;text-align:center">City</th> 
  10.    <th style=" background-color:Black; color:White;border: Gray 1px solid;text-align:center">IPToNumber</th> 
  11.    <th style=" background-color:Black; color:White;border: Gray 1px solid;text-align:center">IPFromNumber</th> 
  12. </tr> 
  13.    </HeaderTemplate> 
  14.  <ItemTemplate> 
  15. <tr> 
  16.  <td style="border: Gray 1px solid;text-align:center;"><%#Eval("IPid")%></td> 
  17.  <td style="border: Gray 1px solid;text-align:center;"><%#Eval("IPFrom")%></td>   
  18.  <td style="border: Gray 1px solid;text-align:center;"><%#Eval("IPTo")%></td>   
  19.  <td style="border: Gray 1px solid;text-align:center;"><%#Eval("IPLocation")%></td> 
  20.  <td style="border: Gray 1px solid;text-align:center;"> 
  21. <%#Eval("IPCity") %> 
  22.  </td>    
  23.  <td style="border: Gray 1px solid;text-align:center;"><%#Eval("IPToNumber")%></td>    
  24.  <td style="border: Gray 1px solid;text-align:center;"><%#Eval("IPFromNumber")%></td> 
  25.    </tr> 
  26.  </ItemTemplate> 
  27.    </asp:Repeater> 
  28.  </table> 

后來問題就解決了,我現在也不知道這個問題什么原因,為什么不支持自動產生列呢(等待高手幫忙解決)?

知道問題的所在了,然后就可以隨心的處理DataTable里面的數據了,如下面一個簡單的小例子:

代碼 

  1. public static IEnumerable getEnumerable()  
  2.    {  
  3.   DataTable dt = getDatatable();  
  4.   try 
  5.   {  
  6.  var query = from q in dt.AsEnumerable()  
  7.    orderby long.Parse(q["IPid"].ToString()) descending  
  8.    where q["IPid"].ToString() == "345058" 
  9.    select new 
  10.    {  
  11.   IPid = q["IPid"].ToString(),  
  12.   IPFrom = q["IPFrom"].ToString(),  
  13.   IPTo = q["IPTo"].ToString(),  
  14.   IPLocation = q["IPLocation"].ToString(),  
  15.   IPCity = q["IPCity"].ToString(),  
  16.   IPToNumber = q["IPToNumber"].ToString(),  
  17.   IPFromNumber = q["IPFromNumber"].ToString()  
  18.    };  
  19.  return query;  
  20.  //List<IPInfo> list = new List<IPInfo>();  
  21.  //foreach (var q in query)  
  22.  //{  
  23.  //IPInfo model = new IPInfo();  
  24.  //model.IPCity = q.IPCity;  
  25.  //model.IPFrom = q.IPFrom;  
  26.  //model.IPFromNumber = q.IPFromNumber;  
  27.  //model.IPid = long.Parse(q.IPid);  
  28.  //model.IPLocation = q.IPLocation;  
  29.  //model.IPTo = q.IPTo;  
  30.  //model.IPToNumber = q.IPToNumber;  
  31.  //list.Add(model);  
  32.  //}  
  33.  //return list;  
  34.   }  
  35.   catch 
  36.   {  
  37.  return null;  
  38.   }  
  39.    } 

當然更復雜的對DataTable的操作這里就不在敖述了,在這里我只是說明一下困擾我的問題。

原文標題:關于Linq操作DataTable的問題

鏈接:http://www.cnblogs.com/yangtongnet/archive/2010/05/10/1731728.html

【編輯推薦】

  1. Linq匿名類型簡單概述
  2. Linq隨機讀取數據淺析
  3. Linq Lambda表達式全面分析
  4. Linq擴展方法簡單分析
  5. 初探Linq局部變量類型

 

 

責任編輯:彭凡 來源: 博客園
相關推薦

2009-09-15 16:52:19

Linq To Dat

2009-09-10 09:35:25

Linq語句

2009-09-15 17:45:34

Linq多條件

2011-05-17 13:22:50

SQL對象名無效

2009-09-14 10:29:02

LINQ刪除記錄

2009-09-15 17:46:08

C#綁定句柄無效

2009-06-12 12:37:38

Java軟件

2010-04-30 10:24:00

Oracle查詢指定記

2010-06-12 12:46:04

Grub Rescue

2009-09-15 13:45:58

Linq To Sql

2010-05-11 13:25:18

Mysql大小寫

2009-09-14 10:13:02

LINQ查詢操作

2009-09-18 14:51:19

LINQ TO SQL

2009-09-15 13:30:54

linq級聯

2011-07-22 08:43:08

XML

2011-03-22 10:05:58

2010-04-16 17:38:25

2009-09-16 16:59:05

LINQ to XML

2009-09-18 16:07:10

Linq Where操

2009-09-08 15:19:52

Linq Where操
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品久久国产愉拍 | 97人人澡人人爽91综合色 | 亚洲精品久久久久久一区二区 | 一区二区影视 | 欧美在线视频一区二区 | www.天天操 | 超级乱淫av片免费播放 | 羞羞视频网站免费观看 | 亚洲成人精品免费 | 亚洲成人免费观看 | 午夜久久久 | 黄色成人av | 国产黄色在线观看 | 一区二区三区免费观看 | 午夜视频在线免费观看 | 日韩视频精品在线 | 91观看 | 视频一二三区 | 久久黄色网| 福利视频一区二区 | 在线日韩视频 | 亚洲国产精品久久久久秋霞不卡 | 中文在线一区二区 | 日本不卡在线观看 | 欧美性吧 | 99综合在线 | 欧美精品一区二区免费视频 | 日韩精品无码一区二区三区 | 91在线免费视频 | 波多野吉衣久久 | 日韩在线视频免费观看 | 国产ts人妖另类 | 99精品国产一区二区青青牛奶 | 国产精品一区二区三区久久 | 久久亚洲91 | 亚洲第一天堂无码专区 | 福利网站在线观看 | 精品国产一区二区三区久久 | 日韩美女一区二区三区在线观看 | 超碰精品在线观看 | 中文字幕高清av |