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

這篇文章主要講解了“LINQ操作DataTable出現指定的轉換無效問題怎么解決”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“LINQ操作DataTable出現指定的轉換無效問題怎么解決”吧!

成都創新互聯公司是專業的偃師網站建設公司,偃師接單;提供網站制作、網站建設,網頁設計,網站設計,建網站,PHP網站建設等專業做網站服務;采用PHP框架,可快速的進行偃師網站開發網頁制作和功能擴展;專業做搜索引擎喜愛的網站,專業的做網站團隊,希望更多企業前來合作!

代碼

public static IEnumerable getEnumerable()    {    DataTable dt = getDatatable();    try   {     var query = from q in dt.AsEnumerable()     where q.Field<string>("IPLocation") == "純真網絡 2008年6月20日IP數據"    select new    {     IPid = q.Field<int>("IPid"),     IPFrom = q.Field<string>("IPFrom"),     IPTo = q.Field<string>("IPTo"),     IPCity = q.Field<string>("IPCity"),     IPToNumber = q.Field<string>("IPToNumber"),     IPFromNumber = q.Field<string>("IPFromNumber")     };     return query;     }     catch    {   return null;    }   }

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

IPid = q.Field<int>("IPid"),  IPFrom = q.Field<string>("IPFrom"),  IPTo = q.Field<string>("IPTo"),  IPCity = q.Field<string>("IPCity"),  IPToNumber = q.Field<string>("IPToNumber"),  IPFromNumber = q.Field<string>("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自動生成列換成了手動輸入列:

代碼

<table  align="center" width="100%" cellpadding="0" cellspacing="0" style="border: Gray 1px solid; margin-top:5px; margin-bottom:10px">    <asp:Repeater ID="rpTest" runat="server">    <HeaderTemplate> <tr>    <th style=" background-color:Gray; color:White;border: Gray 1px solid;text-align:center">ID</th>    <th style=" background-color:Black; color:White;border: Gray 1px solid;text-align:center">IPFrom</th>    <th style=" background-color:Black; color:White;border: Gray 1px solid;text-align:center">IPTo</th>    <th style=" background-color:Black; color:White;border: Gray 1px solid;text-align:center">IPLocation</th>    <th style=" background-color:Black; color:White;border: Gray 1px solid;text-align:center">City</th>    <th style=" background-color:Black; color:White;border: Gray 1px solid;text-align:center">IPToNumber</th>    <th style=" background-color:Black; color:White;border: Gray 1px solid;text-align:center">IPFromNumber</th> </tr>    </HeaderTemplate>  <ItemTemplate> <tr>  <td style="border: Gray 1px solid;text-align:center;"><%#Eval("IPid")%></td>  <td style="border: Gray 1px solid;text-align:center;"><%#Eval("IPFrom")%></td>    <td style="border: Gray 1px solid;text-align:center;"><%#Eval("IPTo")%></td>    <td style="border: Gray 1px solid;text-align:center;"><%#Eval("IPLocation")%></td>  <td style="border: Gray 1px solid;text-align:center;"> <%#Eval("IPCity") %>  </td>     <td style="border: Gray 1px solid;text-align:center;"><%#Eval("IPToNumber")%></td>     <td style="border: Gray 1px solid;text-align:center;"><%#Eval("IPFromNumber")%></td>    </tr>  </ItemTemplate>    </asp:Repeater>  </table>

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

知道問題的所在了,然后就可以隨心的處理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<IPInfo> list = new List<IPInfo>();   //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://m.kartarina.com/article4/gecioe.html

成都網站建設公司_創新互聯,為您提供移動網站建設網站內鏈網站營銷關鍵詞優化Google響應式網站

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

搜索引擎優化
主站蜘蛛池模板: 久久青青草原亚洲av无码| 无码国产精品一区二区免费vr| 国产亚洲美日韩AV中文字幕无码成人 | 国产精品无码久久久久| 中文有码vs无码人妻| 中文有码无码人妻在线| 久久国产精品无码网站| 亚洲熟妇av午夜无码不卡| a级毛片无码免费真人久久| 久久午夜无码鲁丝片| 中文字幕无码不卡在线| 在人线av无码免费高潮喷水| 国精品无码一区二区三区左线| 久久久无码精品午夜| 日韩精品无码一区二区中文字幕 | 无码GOGO大胆啪啪艺术| 无码国模国产在线观看免费| 无码人妻精品中文字幕| 野花在线无码视频在线播放| 国产精品爽爽va在线观看无码 | 丰满少妇人妻无码| 亚洲AV永久无码天堂影院| 午夜无码伦费影视在线观看| 亚洲AV无码一区二区三区国产| 亚洲日韩精品A∨片无码加勒比| 无码人妻精品一区二区三区66 | 国产AV无码专区亚洲AV手机麻豆| 无码人妻啪啪一区二区| 无码人妻精品一区二区蜜桃网站 | 亚洲日韩乱码中文无码蜜桃臀网站| 欧洲精品无码成人久久久| 免费无码成人AV在线播放不卡| 国产成人无码一区二区在线观看| 国产精品无码永久免费888| 久久久久久久久免费看无码| 亚洲午夜无码毛片av久久京东热| 亚洲中文久久精品无码1| 久久精品无码专区免费青青| 久久久久无码精品国产不卡| 69天堂人成无码麻豆免费视频| 亚洲精品无码人妻无码|