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 列は null になります。データを含む行を更新すると、更新コマンドは正常に機能します。しかし、WO_BreakerRail に一致する情報がない行を更新すると、行コレクションの行を変更したため、テーブル アダプターが更新する必要があると判断するため失敗しますが、WO_BreakerRail にはその行がありません。ID が null の場合に update コマンドではなく insert コマンドを使用するようにテーブル アダプタに指示する方法はありますか?

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 に答える