问题标签 [datarelation]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
805 浏览

c# - 如何在c#中将父ID从父表反映到子表

尝试直接在子表中获取父 ID,是否可以dsTest.Relations.Add()通过添加 cascade.for 级联来获取子表中的父 ID如何使用自动生成的标识密钥更新数据集父子表?

数据集 dsTest = new DataSet("DataSet");

0 投票
1 回答
774 浏览

c# - 使用折叠/展开行.net 通过 Datagridview 中的数据集显示相关数据表

我有 2 个数据表被添加到数据集中:

父表:

一个子表:

添加到数据集并使用数据关系通过“类别”列链接:

将此添加到 datagridview 作为数据源,如:

这只会显示父表,但我希望有与我的数据关系相关的可扩展行,但它不会工作。我还尝试将我的数据源绑定到一个绑定源,其中数据源作为我的主数据表,我的数据成员是我的关系,这对我来说更有意义,但这也不起作用。最初我遵循以下示例

https://www.mindstick.com/Articles/1416/expandable-and-collapsible-rows-in-datagrid-in-c-sharp-winforms

这是一个类似的问题,但不一样:

在一个datagridview中显示父数据表并在另一个中显示子数据表元素?

0 投票
1 回答
1713 浏览

c# - DataGridView 中的数据关系

我有一个填充了两个表的数据集:

然后我得到了这两个表的 DataRelation。所以我想用他的身份证、姓名和他所在城镇的名字打印学生。这就是我创建 DataRelation 的原因。

但是,当我将 DataSet 添加到我的 DataGridView 时,我总是得到TownId而不是TownName

0 投票
1 回答
760 浏览

c# - System.ArgumentNullException:参数列不能为空

因此,对于一个学校项目,我需要遵循一本名为 Programming with C# Databases 的书的说明。在本章中,我需要使用 Bindingsources 等制作一个 datagridview。所以我在这个线程的标题中得到错误的地方是当我定义一个 DataRelation 时。代码如下:

发生错误的那一行就是这行代码

我不知道如何解决这个问题以及我的同学。我们比较了我们的代码,它们都有相同的代码,因为书籍告诉我们该怎么做,但由于某种原因,错误只发生在我身上。

我能做些什么 ?帮助 :(

干杯,

0 投票
0 回答
103 浏览

c# - 如何在 DataGridView 中编辑通过 DataRelation 添加的父列?

我在作为父子关系的数据集中有两个表。我想在同一个 DataGridView 中显示和编辑它们。所以我将感兴趣的父列添加到子表中。

可视化没问题。在 DataGridView 中,我看到所有子行,并且父表中的子行被多次列出(这是预期的 - 其他主题)。但是在编辑时(双击单元格或按“F2”)是不可能的,即我只能编辑原始子表中的列。试图强制列 ReadOnly = false;将导致错误。

选择这种显示形式的原因是为了以紧凑的方式将数据获取到我的应用程序中。将有一些额外的逻辑用于从数据表中添加和删除行,这超出了本问题的范围。

附上一个小demo程序:

任何人都可以向我提示正确的方向如何使所有列都可编辑吗?

非常感谢

0 投票
1 回答
222 浏览

c# - DataRelation:如何比较特定列

我正在使用此链接中的答案比较两个数据表比较两个数据表但是当我使用 DataRelation 函数时,我收到一个错误,即两个列的长度都应该匹配。但我只想比较特定的列。

目前我有这种方式:

我想要做的是,如果第一列中的所有列与第二列中的第 1、2、3、4、5、6、7 列匹配,则将所有第二列(包括 0)加载到结果数据表中

请你能建议我怎么做吗?

0 投票
0 回答
102 浏览

vb.net - 在 vb.NET 中加入表

关于这个问题有很多帖子(在这个网站和其他网站上),但我阅读的每个解决方案都涉及SQL查询,我不是在寻找这样的解决方案。

我有三个DataTables( vb.NET),我想通过第一列(包含 a TimeStamp)加入它们。

例如,如果我有三个call ,并像下DataTables一个一样填充:TAB01TAB02TAB03

我怎样才能像下一个一样填写第四个DataTable(比如说)?TAB04

问题似乎很简单(我的第一次尝试是使用集合来保存所有三个表中的数据,然后匹配TimeStamps以填充第四个表)。但是,由于我不能保证TimeStamps三个表中的表相互匹配,因此集合技术看起来是最糟糕的选择。

有没有另一种方法来解决这个问题?

更新:

我在这里找到了这种方法,它使用 a在两个不同表的列之间DataSet创建:DataRelation

到目前为止一切顺利(我完全理解上面代码的语法。但是,正如链接中提到的那样,命令:

应该自动填充DataGridView(命名DGV1)作为表TAB04。缺少某些内容,因为此代码未填充DGV1任何内容。这是一个有效的方法吗?如果是这样,我错过了什么?为什么DGV1还是空的?

0 投票
0 回答
179 浏览

c# - 具有 DataRelation 的 DataSet 将来自多个父项的子记录合并为一个

我遇到了一些遗留代码似乎有点奇怪的问题。有问题的代码是使用 2 个 DataTables 创建一个 DataSet,然后在数据用于网格视图(自定义用户控件)之前定义表之间的关系 - 子记录分组在适当的父记录下。关系似乎设置正确,ParentColumnChildColumn都设置为具有匹配值的列。但是,如果两个父级之间的另外两个单独的列值相同,则所有子记录仅显示在一个父级下方。

数据集信息

资源表

| 用户名 | 会员ID | 名字 | 姓氏 | 电子邮件 |
| 53C ... | C3A ........ | 詹姆斯..... | 巴恩斯.....| jbarnes@rmail.com |
| AE4 ... | 07A .... | 詹姆斯..... | 巴恩斯.....| buckybarnes@hotmail.com |

请求表

| 请求ID | 所有者 ID | 会员ID |
| 第1234章………… 53C .......| C3A .... |
| 第2345章 AE4 .......| 07A ....|
| 7689 ........| AE4 .......| 07A .... |

在这种情况下,Resource表中的行是父记录,表中的行是子记录Request。基于此,我的预期是 53C James Barnes 的记录下方会有 1 排,AE4 James Barnes 下方会有 2 排。实际上,我在 53C(我认为)James Barnes 下看到了 3 排。其他詹姆斯巴恩斯没有列出。

这是以下设置DataRelation

由于直接引用父/子值列,我认为列名无关紧要(也许?)。

我浏览了大量可以在这里和其他地方找到的文章,但我没有发现任何类似的东西。除了资源表中名字和姓氏匹配的情况外,其他一切都正常。

0 投票
0 回答
14 浏览

.net - 无法使用关系名称设置 BindingSource.DataMember

我需要将关系绑定到文本框。

第一步,我添加与数据集(ds)的关系。下一步,我将此关系分配给 bindingsorce 的数据成员。但是在设置 BindingSource.DataSource 后数据成员被清除了。

另一方面,我尝试像这样在 DataSet 之前设置 DataMember

但它有一些像这样的错误

在 DataSource 上找不到 DataMember 属性“FK_ToCustomerRelation”。

尽管如此,我已经添加了关系。

如何添加与 DataMember 的关系?

0 投票
0 回答
34 浏览

c# - 为什么 DataTable.Rows[i].Delete() 和 DataSet.AcceptChanges() 似乎都没有触发 DataRelation?

我在两个表之间创建了一个关系,以便保护一个表的行不被删除,但这似乎不起作用:

我的数据库结构包含两个表,AreasLocations. 表Areas有一个Id列,而Locations表有一个AreaId列,用作外键。

我创建了一个DataRelation包含该外键的 ,现在我想看看当我尝试删除一个用作 的Area时会发生什么,尽管这很简单:IdAreaId

我期望从方法或方法中获得某种形式的Exception,但我什么也没得到。Delete()AcceptChanges()

供您参考:最典型的错误是在 DataRelation 中交换父级和子级。我已替换dt_Areas.Rows[0].Delete();dt_Locations.Rows[0].Delete();,但这显然不是问题的原因。

整个意图是有类似的东西:

顺便说一句,我还希望dataSet.AcceptChanges()实际修改它所连接的数据库,但那里似乎没有发生任何事情。除此之外,我还需要做更多的事情AcceptChanges()吗?

编辑
将以下行添加到我的代码中解决了这个问题: