看板 C_Sharp 關於我們 聯絡資訊
小弟自己寫了一段很醜的方式來解決問題 OleDbConnection conn = new OleDbConnection(connStr); // 抓取 SchemaTable conn.Open(); DataTable dt = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Key_Column_Usage, null); conn.Close(); // 抓出具有 PrimaryKey 的 Table Name var query = from sch in dt.AsEnumerable() where ("PrimaryKey" == sch["CONSTRAINT_NAME"].ToString()) select new { table = sch["TABLE_NAME"].ToString(), // 篩選出各 Table 裡面的 PrimaryKey col = from sch2 in dt.AsEnumerable() where sch["TABLE_NAME"].ToString() == sch2["TABLE_NAME"].ToString() select sch2["COLUMN_NAME"].ToString() }; // 設定 Table 的 PrimaryKey foreach (var v in query.Distinct()) { int col = v.col.Count(); DataColumn[] dc = new DataColumn[col]; foreach (string colname in v.col) { dc[--col] = dataSet.Tables[v.table].Columns[colname]; } dataSet.Tables[v.table].PrimaryKey = dc; } 有更好的寫法的話,麻煩請指教小弟一下 @@ 另外有沒有辦法,可以自動設定"自動遞增"的欄位?? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.59.78.243