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

LINQ操作DataTable出現(xiàn)指定的轉(zhuǎn)換無(wú)效問(wèn)題的解決

開(kāi)發(fā) 后端
本文將為大家介紹LINQ操作DataTable出現(xiàn)指定的轉(zhuǎn)換無(wú)效錯(cuò)誤的解決方法,希望對(duì)大家有所幫助。

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

下面進(jìn)入正題,說(shuō)說(shuō)我在開(kāi)發(fā)過(guò)程遇到的問(wèn)題 “LINQ操作DataTable的問(wèn)題 ”。

在平時(shí)的工作中,可能有很多情況下要對(duì)DataTable的里面的數(shù)據(jù)進(jìn)行處理,最簡(jiǎn)單的例子如:對(duì)DataTable中的某個(gè)字段進(jìn)行排序,根據(jù)條件篩選DataTable中的數(shù)據(jù)。。。,例子很多,下面我們看看如何處理的:

這是我最初寫(xiě)的代碼:

代碼 

  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") == "純真網(wǎng)絡(luò) 2008年6月20日IP數(shù)據(jù)" 
  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.  } 

然后我在***做數(shù)據(jù)源綁定的時(shí)候,總是報(bào)System.InvalidCastException: 指定的轉(zhuǎn)換無(wú)效的錯(cuò)誤,無(wú)論用Gridview的自動(dòng)生成列,還是Reapter的手動(dòng)添加列,都有問(wèn)題,***我查出生成的結(jié)果集就含有異常的存在,也就說(shuō)再取結(jié)果集的時(shí)候,要慎重用如下寫(xiě)法:

  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"

 我后來(lái)嘗試了另一種寫(xiě)法:

  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() 

一開(kāi)始我調(diào)試也還是報(bào)System.InvalidCastException: 指定的轉(zhuǎn)換無(wú)效這個(gè)錯(cuò)誤,我調(diào)試了一段時(shí)間,也還是有問(wèn)題,我在想是不是數(shù)據(jù)綁定控件的問(wèn)題,后來(lái)我將原來(lái)的Gridview自動(dòng)生成列換成了手動(dòng)輸入列:

代碼 

  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> 

后來(lái)問(wèn)題就解決了,我現(xiàn)在也不知道這個(gè)問(wèn)題什么原因,為什么不支持自動(dòng)產(chǎn)生列呢(等待高手幫忙解決)?

知道問(wèn)題的所在了,然后就可以隨心的處理DataTable里面的數(shù)據(jù)了,如下面一個(gè)簡(jiǎn)單的小例子:

代碼 

  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.    } 

當(dāng)然更復(fù)雜的對(duì)DataTable的操作這里就不在敖述了,在這里我只是說(shuō)明一下困擾我的問(wèn)題。

原文標(biāo)題:關(guān)于Linq操作DataTable的問(wèn)題

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

【編輯推薦】

  1. Linq匿名類型簡(jiǎn)單概述
  2. Linq隨機(jī)讀取數(shù)據(jù)淺析
  3. Linq Lambda表達(dá)式全面分析
  4. Linq擴(kuò)展方法簡(jiǎn)單分析
  5. 初探Linq局部變量類型

 

 

責(zé)任編輯:彭凡 來(lái)源: 博客園
相關(guān)推薦

2009-09-15 16:52:19

Linq To Dat

2009-09-10 09:35:25

Linq語(yǔ)句

2011-05-17 13:22:50

SQL對(duì)象名無(wú)效

2009-09-15 17:45:34

Linq多條件

2009-09-14 10:29:02

LINQ刪除記錄

2009-09-15 17:46:08

C#綁定句柄無(wú)效

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大小寫(xiě)

2010-04-16 17:38:25

2011-03-22 10:05:58

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操

2009-09-10 14:54:15

LINQ使用Skip操

2009-09-08 16:55:01

Linq實(shí)現(xiàn)XML轉(zhuǎn)換

2009-09-14 10:13:02

LINQ查詢操作

2009-09-18 14:51:19

LINQ TO SQL
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 欧美日韩一 | 精品免费国产视频 | av在线黄 | 亚洲欧美另类在线 | 国产在线观看一区二区 | 免费能直接在线观看黄的视频 | 久久久91精品国产一区二区三区 | 国产精品色av | 视频一区二区在线 | 欧美日韩国产一区二区三区 | 日韩免费网站 | 91精品国产色综合久久 | 成年人在线观看视频 | 亚洲免费一区二区 | 日本中出视频 | 久久网站黄 | 在线观看日韩 | 欧美成人h版在线观看 | 国产一区二区激情视频 | 免费视频一区二区 | 久久精品色欧美aⅴ一区二区 | 成年人在线观看视频 | 精品国产一区二区三区久久久蜜月 | 伊人免费在线 | 欧美精品中文字幕久久二区 | 一级在线| 成人在线视频免费观看 | 亚洲a视频 | 免费午夜视频在线观看 | 亚洲一级黄色 | 日韩欧美大片在线观看 | 操久久久 | 亚洲成人av在线播放 | 日本精品一区 | 波多野结衣电影一区 | 久久97精品 | 韩国理论电影在线 | 亚洲精品中文字幕在线 | 欧美精品二区三区 | 91麻豆精品一区二区三区 | 日本精品在线观看 |