C#TableAdapter.Update()使用UPDATE而不是INSERT

时间:2010-03-25 15:44:21

标签: c# insert tableadapter

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列将为null。更新包含数据的行时,update命令正常工作。但是如果我在WO_BreakerRail中更新了一个没有匹配信息的行,它会失败,因为表适配器认为它应该更新,因为我修改了它的行集合中的行,但是WO_BreakerRail没有该行。当ID为null而不是更新命令时,有没有办法告诉表适配器使用insert命令?

2 个答案:

答案 0 :(得分:2)

对于没有数据的行,请将rowstate设置为new 致电:dataRow.SetAdded()

答案 1 :(得分:0)

我认为以下是您在添加方法中遗漏的内容。

   // ... in your method where your inserting 
        DataRow row = MyDataTable.NewRow();
        // .... add data to row ....
        MyDataTable.Rows.Add(row);