【发布时间】:2011-03-21 11:44:18
【问题描述】:
我在这里遇到了一个奇怪的情况,希望有人能帮助我。使用无类型数据集时我没有同样的问题。
好的。我有一个类型化数据集 MyDS 和一个类型化数据表 MyTable(TableID、Title、Message)。
该表使用 UNION ALL 填充来自两个表的结果
Select
TableAID,
TableATitle,
Message
FROM TableA
UNION ALL
Select
TableBID,
TableBTitle,
Message
FROM TableB
Dim cmd As SqlCommand = New SqlCommand("SQL", conn)
Dim da AS SqlDataAdapter = New SqlDataAdapter(cmd)
da.Fill(MyDS.MyTable)
查询在 SQL Server 上运行良好,但是当我单步执行代码时,我发现 TableAID 或 TableAID 不正确。
TableA 有 1 行,TableB 有 15 行。所以我的数据集返回 16 行(所以基本上这是一个主从情况)。除了 TableAID 和 TableBID 之外,所有列都返回正确的相应数据。
TableAID 的值 = 100 而 TableBID 的值为 10, 11, 12, 13, .........24,但是当我逐步完成时,这
MyDS.MyTable(<strong>i</strong>).TableID 在 16 条记录中保持 100,而不是 100、10、11、12、13、.......24。标题、消息数据正确。 TableAID 和 TableBID 是我的主键。
i = 0 到 15
这就是类型化数据集处理 UNION 的方式吗?我不想创建两个类型化的数据表并为每个数据表创建单独的 SQL 并创建关系。
【问题讨论】:
-
在您用于单步执行数据表的代码中是否有任何条件逻辑?如果是这样,您是否有机会编辑您的问题以包含它?
-
没有条件逻辑。我用结果填充网格视图。没什么特别的。
-
我想我需要查看强类型数据集/数据表背后的代码。