更改 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不会更改

如何更改 DataTable C# 中的列格式

如何根据值更改jquery dataTable中的行颜色

.net中,如何更改datatable.columns.datatype中的数据类型为长时间

如何更改 JQuery.DataTable 中单元格的样式?