很多情形下我們需要知道表的主鍵是什麼在ADONet中提供了DataTable可以映射數據庫的表於是便可以利用DataTable的屬性PrimaryKey它是DataColumn[] 類型是一個數組我們可以使用如下的代碼
DataColumn[] colscols = TablePrimaryKey//注意不是cols是DataColumn數組不是DataColumn變量這樣做主要是為了處理聯合主鍵的問題
for(int i = i < colsLength i++)
{ MessageBoxShow(cols[i]ColumnName)}
按理這個問題就已經解決了但是colsLength卻是原來在默認的情況下填充DataTable時並沒有從數據庫中取的主鍵的信息如何獲得主鍵呢?經過研究發現在填充Dataset的時候可以使用DataAdapter的MissingSchemaAction屬性幫助我們解決這個問題於是有如下的代碼
//使用DataAdapter填充DataTable dataadapterMissingSchemaAction = MissingSchemaActionAddWithKeydataadapterFill(Table)
DataColumn[] colscols = TablePrimaryKey//注意不是cols是DataColumn數組不是DataColumn變量這樣做主要是為了處理聯合主鍵的問題
for(int i = i < colsLength i++)
{ MessageBoxShow(cols[i]ColumnName)}
這樣我們便可以如願以償了MissingSchemaAction屬性是確定現有Dataset(或DataTable)架構與傳入數據不匹配時需要執行的操作MissingSchemaActionAddWithKey是枚舉值它的作用是添加必需的列和主鍵信息以完成架構利用它用戶可以在每個 DataTable上顯式設置主鍵約束
From:http://tw.wingwit.com/Article/program/net/201311/13602.html