在普通情況下,我們使用SqlDataAdapter來Fill填充DataTable,如果使用下列代碼我們是不能拿到主鍵列的:
dataadapter.Fill(Table);
DataColumn[] cols;
cols = Table.PrimaryKey;
for(int i = 0; i < cols.Length; i++)
{
MessageBox.Show(cols[i].ColumnName);
}
因為數據庫中的主鍵約束在普通情況下是不會設置到DataTable中去的。
解決方法:我們可以加入一句代碼,讓主鍵約束設置到DataTable中
代碼:
dataadapter.MissingSchemaAction = MissingSchemaAction.AddWithKey;
dataadapter.Fill(Table);
DataColumn[] cols;
cols = Table.PrimaryKey;
for(int i = 0; i < cols.Length; i++)
{
MessageBox.Show(cols[i].ColumnName);
}