爲DataTable設置主鍵及利用主鍵查找行數據

一,爲DataTable設置主鍵


如果我們爲DataTable設置一個主鍵,那麼我們就可以根據主鍵在DataTable中查到唯一的數據。爲什麼是唯一的數據呢?因爲根據主鍵查出來的記錄永遠都是唯一的,呵呵,要不然它與DataTable的Select方法是一樣的效果了。當然,利用DataTable.Select("能確定唯一的條件").Rows[0]也可以找到與利用主鍵查找到的一樣的信息。

DataTable的主鍵屬性爲PrimaryKey,利用該屬性,我們可以設置或者獲取DataTable的主鍵。因爲DataTable的主鍵和SQL Server的主鍵一樣,存在聯合主鍵的問題,所以PrimaryKey應該是一個DataColumn數組。我們可以先設置一個DataColumn數組,當然,這個數組中的列都應該是該DataTable中的列。然後將這個數組賦給PrimaryKey屬性作爲DataTable的主鍵。

以下爲設置PrimaryKey的示例:
//先聲明一個DataTable
DataTable dt = new DataTable();
dt.Columns.Add("A");
dt.Columns.Add("B");
dt.Columns.Add("C");
dt.Columns.Add("D");
            
//然後我們將列A與列B作爲dt的聯合主鍵
DataColumn[] cols = new DataColumn[] { dt_smartgrid.Columns["A"], dt_smartgrid.Columns["B"] };
dt.PrimaryKey=cols;

很簡單,我們就爲dt設置好主鍵了。

二,利用主鍵查找行數據


上一步我們已經爲DataTable設置好主鍵,這一步我們演示如何利用主鍵查找數據。
首先我們要聲明一個object[]數據,對應主鍵的數組中列的值,如上面的主鍵數組,我們聲明一個object[]數組並賦值。
示例:
object[] objs=new object[]{"school","class"};
DataRow dr=dt.Rows.Find(objs);

上面的dr就是我們利用主鍵查找出來的唯一的行。當然,我們也可以利用如下方法來查找到該行數據:
DataRow dr=dt.Select("A='school' and B='class'").Rows[0]

兩種方法查出來的效果是一樣的。
發佈了93 篇原創文章 · 獲贊 2 · 訪問量 10萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章