1
SELECT        WO_BreakerRail.ID, indRailType.RailType, indRailType.RailCode, WO_BreakerRail.CreatedPieces, WO_BreakerRail.OutsideSource, WO_BreakerRail.Charged, 
                         WO_BreakerRail.Rejected, WO_BreakerRail.RejectedToCrop, COALESCE (WO_BreakerRail.Date, @date) AS Date
FROM            indRailType LEFT OUTER JOIN
                         WO_BreakerRail ON indRailType.RailCode = WO_BreakerRail.RailCode AND WO_BreakerRail.Date = @date

我有一个绑定到表适配器的 DataGridView。这是我用来填充适配器的选择查询。如果没有来自 WO_BreakerRail 的匹配条目,则 ID 列将为空。当我更新包含数据的行时,更新命令可以正常工作。但是,如果我更新 WO_BreakerRail 中没有匹配信息的行,它会失败,因为表适配器认为它应该更新,因为我已经修改了它的行集合中的行,但 WO_BreakerRail 没有该行。有没有办法告诉表适配器在 ID 为空时使用插入命令而不是更新命令?

4

2 回答 2

2

对于没有数据的行,通过调用将 rowstate 设置为 new dataRow.SetAdded():。

于 2010-03-25T15:56:47.463 回答
0

我认为以下是您在 add 方法中缺少的内容。

   // ... in your method where your inserting 
        DataRow row = MyDataTable.NewRow();
        // .... add data to row ....
        MyDataTable.Rows.Add(row);
于 2010-03-25T15:58:16.800 回答