關於 點部落 團隊
我們是一群普通的程式設計人員,在各自不同的領域發展, 由於對 IT 知識社群發展有一股的熱誠,所以我們一起創造了這個平台, 我們希望透過 點部落平台 能夠創造出更好的 IT 知識技術分享環境。 歡迎您參與點部落,也請給我們意見與指教,讓我們能夠持續的改善, 營造出更好的環境及平台。tw.dotblogs@gmail.com

常用連結

最新回應

這個情境是這樣的,有時候可能必須在 .cs  DataSet 或  DataTable  下取 TOP 前幾筆 (已經無法在資料庫下 SELECT TOP x 時)
這時候因該怎麼做呢?又會遇到什麼問題呢? 話不多說,請看說明。
一開始,可能很直覺想到就是使用以下的程式碼
 

// tb 為來源 Table 可能有100筆 // dtRss 為希望產生 TOP 10 後 存放的Table for (int iIndex = 0; 10 > iIndex; iIndex++) { dtRss.Rows.Add(tb.Rows[iIndex]); }

看起來好像很直覺,但執行後出錯誤訊息 這個資料列已經屬於其他資料
或是出現 (這個資料列已經屬於其他資料表)
那該怎麼處理呢?看來就是不同的結構無法這樣處理,
解決方法也很簡單針對本來的程式
1.先複製來源 DataTable的結構
2.使用複製資料方式加入資料列

//複製來源的結構 dtRss = tb.Clone(); for (int iIndex = 0; 10 > iIndex; iIndex++) { //透過複製的方式來將資料列資料加入 dtRss.ImportRow(tb.Rows[iIndex]); }

所以就這樣簡單兩行程式碼,就能做到在  DataTable 下做到複製資料行 及 SELECT TOP 的功能。

這次的範例有趣嗎?下次在介紹有趣的給你知道。


回應

目前沒有回應.

*標 題:

*姓 名:

 電子郵件: (將不會被顯示)

 個人網頁:

*回應

登入後使用進階評論

Please add 7 and 1 and type the answer here: