Проблема с автонумерацией, NewRow возвращает другой идентификатор, чем тот, который он сохраняет, как в базе данных после фиксации.(Набор данных C #) - PullRequest
1 голос
/ 21 декабря 2011

RejectChanges не отменяет автонумерацию ( Я понимаю, почему благодаря этому сообщению ). Но когда я сохраняю строку. Он переопределяет автонумерацию, которая была первоначально возвращена мне. Мне нужно знать идентификатор родительской строки, чтобы я мог создавать связанные записи.

Возможно, есть лучший способ, которым я должен создавать связанные строки?

Я видел это сообщение , в котором рекомендовалось изменить значение AutoIncrement на -1 и AutoSeed на -1. Но это не имеет смысла, и это не сработало для меня.

В моем коде есть две таблицы: Отгрузки и Отгрузка_Пакет_Детали. Это отношения 1-многие.

                r = this.allertDataSet3.Shipments.NewShipmentsRow();
                log.Debug("The new ShipmentRow ID is " + r.ShipmentID); // ID == 1
                this.allertDataSet3.Shipments.RejectChanges();
                r = this.allertDataSet3.Shipments.NewShipmentsRow();
                log.Debug("The new ShipmentRow ID is " + r.ShipmentID); // ID == 2
                r.NumPkgs = p.Length;
                this.allertDataSet3.Shipments.Rows.Add(r);

                // Create Related Row
                MyCompany.MyNamespace.allertDataSet3.Shipment_Package_DetailsRow pd = this.allertDataSet3.Shipment_Package_Details.NewShipment_Package_DetailsRow();
                pd.ShipmentID = r.ShipmentID;  // ID == 2 here.
                pd.TrackingNumber = trackingNumbers[i];
                this.allertDataSet3.Shipment_Package_Details.Rows.Add(pd);

                this.shipmentsTableAdapter.Update(this.allertDataSet3);
                // At this point if i set a breakpoint and look at database, it's been committed to the database with ID == 1. 

                // The following line will fail since I set the package details row to ID == 2.
                this.shipment_Package_DetailsTableAdapter.Update(this.allertDataSet3);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...