我正在为C#中的SQL Server数据库构建一个非常基本的表编辑器;基本上有点像以前用MS Access编辑表格的旧表格。
到目前为止,我在表单上有一个组合框,您可以选择要编辑的表格,然后是一个数据网格视图,显示在组合框中选择的表格。
我想在运行时添加comboboxcolumns 根据列是否有关系,这样用户就可以看到他们正在挑选的值,而不仅仅是ID。
所以基本上我不知道在用户选择表之前,comboboxcolumns需要在哪里(或者需要绑定哪些数据)。因此,这必须在运行时在代码中完成。
到目前为止,我正在使用以下方法填充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,循环遍历列寻找任何有关系的东西(我该怎么办?!?),然后将类型更改为组合柱,然后更改displaymember和valuemember属性为它们所需要的东西(我需要从某个地方获取......如何???)
有人可以按我的方式抛出一些代码,指出我正确的方向吗?
由于
答案 0 :(得分:0)
这是可能的:假设你有表Employee和Department,你可以发现Employee表中的deptId有一个FK到Department.DeptId,没问题,那么你可以得到Department表的所有列。
如何找到你感兴趣的FK(对于当前选中的表格),google for it,例如我找到了这个:http://blog.sqlauthority.com/2007/09/04/sql-server-2005-find-tables-with-foreign-key-constraint-in-database