這篇文章主要講解了“LINQ操作DataTable出現(xiàn)指定的轉(zhuǎn)換無(wú)效問(wèn)題怎么解決”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來(lái)研究和學(xué)習(xí)“LINQ操作DataTable出現(xiàn)指定的轉(zhuǎn)換無(wú)效問(wèn)題怎么解決”吧!
成都創(chuàng)新互聯(lián)公司是專(zhuān)業(yè)的偃師網(wǎng)站建設(shè)公司,偃師接單;提供網(wǎng)站制作、網(wǎng)站建設(shè),網(wǎng)頁(yè)設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專(zhuān)業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行偃師網(wǎng)站開(kāi)發(fā)網(wǎng)頁(yè)制作和功能擴(kuò)展;專(zhuān)業(yè)做搜索引擎喜愛(ài)的網(wǎng)站,專(zhuān)業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來(lái)合作!
代碼
public static IEnumerable getEnumerable() { DataTable dt = getDatatable(); try { var query = from q in dt.AsEnumerable() where q.Field<string>("IPLocation") == "純真網(wǎng)絡(luò) 2008年6月20日IP數(shù)據(jù)" 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; } }
然后我在***做數(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ě)法:
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")
我后來(lái)嘗試了另一種寫(xiě)法:
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()
一開(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)輸入列:
代碼
<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>
后來(lái)問(wèn)題就解決了,我現(xiàn)在也不知道這個(gè)問(wèn)題什么原因,為什么不支持自動(dòng)產(chǎn)生列呢(等待高手幫忙解決)?
知道問(wèn)題的所在了,然后就可以隨心的處理DataTable里面的數(shù)據(jù)了,如下面一個(gè)簡(jiǎn)單的小例子:
代碼
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出現(xiàn)指定的轉(zhuǎn)換無(wú)效問(wèn)題怎么解決”的內(nèi)容了,經(jīng)過(guò)本文的學(xué)習(xí)后,相信大家對(duì)LINQ操作DataTable出現(xiàn)指定的轉(zhuǎn)換無(wú)效問(wèn)題怎么解決這一問(wèn)題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!
網(wǎng)站欄目:LINQ操作DataTable出現(xiàn)指定的轉(zhuǎn)換無(wú)效問(wèn)題怎么解決
鏈接地址:http://chinadenli.net/article4/gecioe.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供移動(dòng)網(wǎng)站建設(shè)、網(wǎng)站內(nèi)鏈、網(wǎng)站營(yíng)銷(xiāo)、關(guān)鍵詞優(yōu)化、Google、響應(yīng)式網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)