【问题标题】:when adding a column more to a DB table, how do you get your datagridview to show the change?当向 DB 表中添加更多列时,如何让 datagridview 显示更改?
【发布时间】:2011-01-14 08:23:10
【问题描述】:

我在 Visual Studio 的一个项目中创建了一个数据集,它指向我数据库中的一个表 然后绑定一个datagridview控件。

现在我打开数据库并向数据库中的表添加另一列。 然后我打开数据集并更新其配置以包含更改。

然后我想更新datagridview,但我无法添加新列。 我可以在datagridview所在的表格中右键单击tableadapter,并获取正确的表格数据。

如果我从表单中删除 tableadapter 和 bindingsource 和 dataset 实例,然后尝试重新绑定它,datagridview 仍然不允许我添加新列。

有人知道发生了什么吗?
我已经尝试过几个项目,包括 VS2008 和 2010 测试版,而不是 C# 以外的其他语言。
到目前为止,唯一的解决方案似乎是制作一个完全不同的数据集,但必须有更好的方法。

提前致谢

【问题讨论】:

  • 你是否使用datagridview的向导来创建数据源?
  • 我通过将数据集添加到我的项目中来创建数据源,然后从解决方案资源管理器中将我想要的表拖到该数据集中。所以是的,我使用 datagridview 中的向导找到我的数据集并选择该数据集中要绑定的表。
  • 尝试刷新架构选项。
  • 我找不到“刷新架构”选项。你在哪里看到这个选项?谢谢回复:)
  • 将 DataSetBindingSource 属性“AllowNew”设置为 True

标签: c# .net sql visual-studio dataset


【解决方案1】:

按照以下步骤操作: 1. 转到数据集并添加新列 2. 转到数据绑定源并修改查询。 3. 转到datagridview并添加新列

我模拟了你所说的相同场景,并且成功了。

【讨论】:

  • 我有一个关于第 2 步的问题。对我来说似乎有点不清楚。修改数据绑定源到底是什么意思?我这样做了: 1 打开了带有 datagridview 的表单。 2右键单击tblTestTableAdapter(测试是我的表)并选择“添加查询”。 3 在构建器窗口中,我选择替换现有查询,并确保包含新列名并按下确定。 4 测试我可以在 VS 的“预览数据”中看到数据。右键单击我的 datagridview 并选择“编辑列”。当我在那里按添加列时,我看不到我新添加的列。
  • 我已经回顾了您指出的步骤。它仍然对我不起作用。似乎 VS 在 datagridview 或 bindingsource 中缓存表方案。然而,当我预览 bindingsource 的数据时,列已经改变了。
【解决方案2】:

如果您将 GridView AutoGeneratedColumn 属性设置为 tru,它将自动反映该列,但如果您将其设置为 fasle,则必须在 标签之间添加这样的 aspx 页面中的标记

<asp:BoundField DataField="ColumnName" HeaderText="Header Text which you want to for table th " />

我希望这对你有用。

谢谢

【讨论】:

  • 嘿。感谢您花时间回答 :) 不幸的是,我不在 aspx 中工作,我正在制作一个老式程序。但我会尝试查看是否可以将 AutoGeneratedColumn 设置为 false,构建我的解决方案,然后将其设置回来并查看它是否以这种方式更新定义。如果可行,我会在这里发帖
  • 在正常的应用程序开发中似乎无法做到这一点。您可以做某事的唯一方法是使用未绑定的列,这会否定整个事情的目的。
【解决方案3】:

在文件夹下
"C:\Users\YOURUSERNAME\AppData\Local\Microsoft\VisualStudio\9.0\ProjectAssemblies"
Visual Studio 有大量编译过的东西用于快速参考。这些以某种散列方案命名,因此我们无法分辨哪一个是我们拙劣的表方案的编译设置。
1. 我们首先关闭 Visual Studio(我只是为了安全起见)
2. 删除 ProjectAssemblies 文件夹中的所有文件夹。
3.再次打开Visual Studio
4. 重建解决方案
5. 现在,当我们向 datagridview 添加列时,我们得到了正确的值。

哇! :D

【讨论】:

  • 另外,我发现有时只是再次构建您的解决方案就可以了。 O_o
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-25
  • 1970-01-01
  • 2014-12-14
  • 2021-07-04
  • 1970-01-01
  • 2014-08-10
  • 1970-01-01
相关资源
最近更新 更多