最近相當忙,國慶前忙的一個頭兩個大,現在也是,市場部的需求真的多,哎~~~~~~~~~沒有發現什麼新的技術,只是在做這個問題的時候有新的發現,具體就拿一個簡單的例子來說吧:第一次從資料庫拿到一個DataTable後在後面的處理的過程中發現另外一個地方也要這個DataTable裡面的部分資料,例如說要這個DataTable中的前10條吧,我又不想從資料庫裡面再去讀取資料,想辦法從這個DataTable中拿出來,常用的可能就是迴圈一條條讀取,但是我還想走捷徑呢,google裡面找了下,也沒有發現什麼,最後想到DataTable有個DefaultView可以篩選一些紀錄的,那就給這個DataTable加一列吧,但是加一列怎麼加呢?在msdn裡面找到了啟示:
msdn中的給某個DataTable加一列並填儲值
1private void AddAutoIncrementColumn()
2{
3 DataColumn column = new DataColumn();
4 column.DataType = System.Type.GetType("System.Int32");
5 column.AutoIncrement = true;
6 column.AutoIncrementSeed = 1000;
7 column.AutoIncrementStep = 10;
8
9 // Add the column to a new DataTable.
10 DataTable table = new DataTable("table");
11 table.Columns.Add(column);
12}
13
但是發現加了一列並沒有填儲值,都為空白的,沒有辦法,自己來加吧:看代碼中的for迴圈:
自己寫的簡單樣本
1 void InitRepeateData()
2 {
3 string sql = @"SELECT TOP 12 * FROM Customer WITH (NOLOCK) ORDER BY sysno DESC";
4 DataTable dt = SqlHelper.ExecuteDataSet(sql).Tables[0];
5 Repeater1.DataSource = dt;
6 Repeater1.DataBind();
7
8 DataColumn col = new DataColumn("cyyID", typeof(int));
9 DataTable dtt = dt;
10 dtt.Columns.Add(col);
11 //迴圈給新加的一列填充有規律的值
12 for (int i = 0; i < dt.Rows.Count; i++)
13 {
14 dtt.Rows[i]["cyyID"] = i + 1;
15 }
16 DataView dv = dtt.DefaultView;
17
18 dv.RowFilter = "yyID <=5";
19 Repeater2.DataSource = dv;
20 Repeater2.DataBind();
21 }
終於看到效果了,哈哈,沒有什麼特別的,加一列就好了,減少了訪問資料庫的麻煩了。