Как сохранить 2 и более таблицы C# access?
Такая проблема. Не получается сохранить 2 таблицы.
Есть 2 таблицы : договоры и детали договоров. Форма договора заполняет сам договор и ниже таблица с деталями и навигатором через который я добавляю детали договора на другой форме.Сохранение 2ух таблиц сразу И так же имеется кнопка сохранить... однако она сохраняет только таблицу договоров но не детали Код привязан к кнопке сохранить
private void productsReceiptBindingNavigatorSaveItem_Click(object sender, EventArgs e)
{
this.Validate();
this.productsReceiptBindingSource.EndEdit();
this.productsReceiptDetailsBindingSource.EndEdit();
this.tableAdapterManager.UpdateAll(this.comfortHouseDataSet);
}`
Код привязан к добавлению деталей накладной
private void DetailsAddNewItem_Click(object sender, EventArgs e)
{
DataRowView newDetail = (DataRowView)this.productsReceiptDetailsBindingSource.AddNew();
frmPructsReceiptDetails detailForm = new frmPructsReceiptDetails();
using (detailForm)
{
detailForm.EditDetails(this.productsReceiptDetailsBindingSource, this.productsBindingSource);
}
}
А этот на форме с деталями
using MaterialSkin.Controls;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace ComfortHouse
{
public partial class frmPructsReceiptDetails : MaterialForm
{
public frmPructsReceiptDetails()
{
InitializeComponent();
}
private void frmPructsReceiptDetails_Load(object sender, EventArgs e)
{
}
BindingSource productsReceiptDetailsBindingSource, productsBindingSource;
ComfortHouseDataSet.ProductsDataTable productsTable;
DataRowView productsReceiptDetailsDataRowView;
public void EditDetails(BindingSource ProductsReceiptDetailsBindingSource,
BindingSource ProductsBindingSource)
{
this.productsBindingSource = ProductsBindingSource;
this.productsTable = (ComfortHouseDataSet.ProductsDataTable)((DataView)this.productsBindingSource.List).Table;
this.productsReceiptDetailsBindingSource = ProductsReceiptDetailsBindingSource;
this.productsReceiptDetailsDataRowView = (DataRowView)this.productsReceiptDetailsBindingSource.Current;
if (productsReceiptDetailsDataRowView.IsNew)
{
ComfortHouseDataSet.ProductsRow product = this.productsTable[0];
productsReceiptDetailsDataRowView["ProductID"] = product.ProductID;
productsReceiptDetailsDataRowView["ReceiptQuantity"] = 0;
productsReceiptDetailsDataRowView["ReceiptPrice"] = product.ReceiptPrice;
productsReceiptDetailsDataRowView["Sum"] = 0.00;
}
this.productIDComboBox.DisplayMember = "ProductName";
this.productIDComboBox.ValueMember = "ProductID";
this.productIDComboBox.DataSource = this.productsBindingSource;
this.productIDComboBox.DataBindings.Add("SelectedValue", this.productsReceiptDetailsBindingSource, "ProductID");
this.productIDComboBox.SelectionChangeCommitted += new EventHandler
(productIDComboBox_SelectionChangeCommitted);
this.ReceiptQuantityTextBox.DataBindings.Add("Text",
this.productsReceiptDetailsBindingSource, "ReceiptQuantity", true,
DataSourceUpdateMode.OnValidation, "<Null>", "");
this.ReceiptPriceTextBox.DataBindings.Add("Text",
this.productsReceiptDetailsBindingSource, "ReceiptPrice", true,
DataSourceUpdateMode.OnValidation, "<Null>", "C2");
if (this.productsReceiptDetailsDataRowView.IsNew)
{
this.ReceiptQuantityTextBox.Text = this.ReceiptPriceTextBox.Text;
}
if (this.ShowDialog() == DialogResult.OK)
{
this.productsReceiptDetailsBindingSource.EndEdit();
this.Dispose();
}
else
{
this.productsReceiptDetailsBindingSource.CancelEdit();
this.Dispose();
}
}
void productIDComboBox_SelectionChangeCommitted(object sender, EventArgs e)
{
int productID = (int)this.productIDComboBox.SelectedValue;
ComfortHouseDataSet.ProductsRow productRow = this.productsTable.FindByProductID(productID);
this.ReceiptPriceTextBox.Text = productRow.ReceiptPrice.ToString("C");
}
private void btnOk_Click(object sender, EventArgs e)
{
this.productsReceiptDetailsBindingSource.EndEdit();
this.Dispose();
}
}
}