Re: [問題] 讀 Access 檔建立 Primary Key

看板C_Sharp作者 (陌生)時間17年前 (2008/09/15 15:48), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/3 (看更多)
小弟自己寫了一段很醜的方式來解決問題 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
文章代碼(AID): #18pXDbf1 (C_Sharp)
文章代碼(AID): #18pXDbf1 (C_Sharp)