2009-11-10 38 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