2
填充DataSet時,我使用「AddWithKey」值作爲DataAdapter的MissingSchemaAction。根據MSDN:DataSet - 在填充外連接查詢時確保PrimaryKey數據
與數據填充它之前添加模式信息到DataSet 確保 該主鍵約束是 包含在 DataSet中的DataTable對象。
但是,當我做到以下幾點:
DataColumn[] foo = TheDataSet.Tables["Table1"].PrimaryKey;
我得到的0 foo.Length有更多的東西,我需要做的,除了這個?:
string TheQuery = "SELECT * FROM Table1 LEFT OUTER JOIN Table2 ON Table1.EVENT_NUM = Table2.EVENT_USER_NUM;
using (SqlDataAdapter TheDataAdapter = new SqlDataAdapter(TheQuery, TheConnection)
{
TheDataAdapter.MissingSchemaAction = MissingSchemaAction.AddWithKey;
TheDataAdapter.Fill(TheDataSet, "Table1");
}
注,如果我的查詢是:
string TheQuery = "SELECT * FROM Table1";
一切都會好的。但是,如果有聯接,我不會得到PrimaryKey。這甚至可能(獲得主鍵)?
編輯:起初,我並沒有意識到這是一個加入。雖然,我測試過會返回PrimaryKey的INNER JOINS。罪魁禍首似乎是這是一個外部連接的事實。因此,我改變了標題。
該表是否有主鍵? – SLaks 2010-06-11 16:16:29
新信息:是的,有一個主鍵,但我剛剛意識到這是一個JOIN查詢(兩個表都有一個主鍵) – JustLooking 2010-06-11 17:32:42
請不要在標題中包含像C#這樣的標籤。將它們放在它們所屬的標籤中。 – 2010-06-11 17:37:23