【问题标题】:DataGridView comboboxcolumn dynamic bindingDataGridView 组合框列动态绑定
【发布时间】:2011-02-07 14:49:50
【问题描述】:

我正在用 C# 为 SQL Server DB 构建一个非常基本的表编辑器;基本上有点像 MS Access 中用于编辑表格的旧表单。

到目前为止,我在表单上有一个组合框,您可以在其中选择要编辑的表,然后是一个 datagridview 显示已在组合框中选择的表。

我想在运行时添加组合框列根据列是否具有关系,以便用户可以看到他们选择的值,而不仅仅是 ID。

所以基本上我不知道组合框列需要在哪里(或者它们需要绑定到什么数据),直到用户选择了一个表。因此,这必须在运行时在代码中完成。

到目前为止,我正在使用以下方法填充 datagridview:

String connectionString = sConnection;
dataAdapter = new SqlDataAdapter(selectCommand, connectionString);
SqlCommandBuilder commandBuilder = new SqlCommandBuilder(dataAdapter);
// Populate a new data table and bind it to the BindingSource.
DataTable table = new DataTable();
table.Locale = System.Globalization.CultureInfo.InvariantCulture;
dataAdapter.Fill(table);
bindingSource2.DataSource = table; 

所以我猜我的路线是这样的:填充 dgv,遍历列以查找任何具有关系的内容(我该怎么做?!?),然后将类型更改为 comboboxcolumn,然后更改将它的 displaymember 和 valuemember 属性设置为它们需要的任何值(我需要从某个地方获取...如何???)

有人可以用我的方式编写一些代码来为我指明正确的方向吗?

谢谢

【问题讨论】:

    标签: c# datagridview


    【解决方案1】:

    有可能:假设您有表Employee和Department,您可以发现Employee表中的deptId与Department.DeptId有一个FK,那么您可以获得Department表的所有列。

    关于如何找到你感兴趣的FK(对于当前选择的表),google一下,例如我找到了这个:http://blog.sqlauthority.com/2007/09/04/sql-server-2005-find-tables-with-foreign-key-constraint-in-database

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-25
      • 1970-01-01
      • 2015-10-23
      • 1970-01-01
      • 1970-01-01
      • 2018-09-21
      相关资源
      最近更新 更多