2009-11-10 67 views
0

我知道這可能有點尷尬,但我試圖修改C#中的OLE DB MS Access數據庫中的某些列的順序。我怎樣才能在數據集中的數據表列的順序中進行特定的更改?如果這是不可能的,我怎樣才能使用數據集重新排列數據庫表的列?C#OLE DB:如何使用數據集重新排列數據庫表的列?

這裏是我有什麼(在C#)樣品:

command.Connection = conn; 
command.CommandText = tableName; 
command.CommandType = CommandType.TableDirect; 
adapter = new OleDbDataAdapter(command); 
dataset = new DataSet(tableName); 
adapter.Fill(dataset, tableName); 
dataset.Tables[0].Columns[dataset.Tables[0].Columns.Count-1].SetOrdinal(CB_PositionCol.SelectedIndex); 
dataset.Tables[0].AcceptChanges(); 

的AcceptChanges的似乎不爲工作,我希望做的,因爲我相信這只是犯的DataRows變化...

謝謝你的幫助!

回答

1

對OleDbCommand使用ALTER TABLE語句。 DataSet,DataTable和DataTableAdapter對數據的底層結構是透明的。實際上,您可以使用表格適配器來轉換來自兩種不同結構的數據。

http://www.functionx.com/vbnet/oledb/Lesson02.htm

+0

所以基本上我將不得不每列從我要插入到最後一列和我刪除了那些添加新列的位置下降? – Partial 2009-11-10 03:16:41

+0

不幸的是,你也可以創建一個新表。傳輸數據,刪除舊錶,將新表更改回舊錶名,然後壓縮/修復...很有趣,但它會起作用。爲什麼需要重新排列色譜柱(這幾乎是您在從用戶界面重新排列色譜柱時「透明地」發生的情況。減少壓縮/修復) – 2009-11-10 15:50:51

+0

如果要以特定方式查看色譜柱,更改SELECT語句,DataView中的順序,或允許在UI中對列進行重新排序。 – 2009-11-10 15:52:48