更改 DataTable 中的 DataColumnCollection 后更新数据库
Posted
技术标签:
【中文标题】更改 DataTable 中的 DataColumnCollection 后更新数据库【英文标题】:Updating database after changing DataColumnCollection in DataTable 【发布时间】:2016-05-01 21:27:41 【问题描述】:在 DataTable 的 DataColumnCollection 中添加/更改列后,我需要更新数据库。我该怎么做?
我使用此代码添加新列:
dataTable.Columns.Add("newColumn", typeof (int));
此代码适用于 dataTable 中更改的行,但不适用于更改的列(它什么都不做)。
SqlDataAdapter adapter = new SqlDataAdapter(cmdText, _connection);
SqlCommandBuilder cb = new SqlCommandBuilder(adapter);
adapter.Update(dataTable);
在cmdText中是用来获取dataTable的select命令。
【问题讨论】:
您无法更改数据库的架构,从而更改内存数据表的架构。您需要为您的数据库使用适当的 SQL 命令。 IE:搜索 T-SQL ALTER TABLE @Steve 谢谢回复。那么没有办法使用 DataTable 更改数据库的架构吗?我现在使用 dataTable.Columns 作为 DataGridView 的数据源,以这种方式更改它很舒服:)。 不,我发现在运行应用程序时需要更改 数据库表 的架构有点奇怪。通常这些变化发生在需求发生变化时。哪种应用程序需要在运行时永久更改其数据库架构? 没什么大不了的,只是学校项目。它应该类似于数据库管理器。 我明白了,但仍然无法使用 DataTable 对象来做到这一点。您需要使用正确的 SQL 命令 【参考方案1】:所以看起来没有办法使用 dataTable 来做到这一点。 您必须使用 SQL 命令(ALTER TABLE ...)。
【讨论】:
以上是关于更改 DataTable 中的 DataColumnCollection 后更新数据库的主要内容,如果未能解决你的问题,请参考以下文章
更改 DataTable 中的 DataColumnCollection 后更新数据库
可编辑DataTable中的SelectBooleanCheckbox不会更改