私は2つのテーブルを持っています。 tblProductとブランド、tblProductには以下が含まれます: ProductId、ProductName、Quantity、Price、Entry_Date。 とBrandsには、ProductId、BrandID、BrandName、BrandDescription、DietType、ProductId(tbProductのFK)が含まれています。私は両方のテーブルに挿入しようとしているカラム 'ProductId'、テーブル 'ProductDB.dbo.Brand'に値NULLを挿入できません。
protected void BtnAdd_Click(object sender, EventArgs e)
{
tblProduct products = new tblProduct();
using (ProductDataContext context = new ProductDataContext())
{
try
{
tblProduct prod = new tblProduct();
{
prod.ProductName = TxtProductName.Text;
prod.Quantity = Int32.Parse(TxtQuantity.Text);
prod.Price = Int32.Parse(TxtPrice.Text);
prod.Entry_Date = DateTime.Parse(TxtDate.Text);
};
context.tblProducts.InsertOnSubmit(prod);
context.SubmitChanges();
Label2.Text = "Product Inserted";
Brand br = new Brand();
{
br.BrandName = TxtBrandName.Text;
br.BrandDescription = TxtBrandDescription.Text;
br.DietType = TxtDietType.Text;
};
prod.Brands.Add(br);
context.Brands.InsertOnSubmit(br);
context.SubmitChanges();
Label1.Text = "Done";
}
catch (Exception exe)
{
Label1.Text = exe.Message;
}
}
}
が、insertコマンドのみ作品:私はLINQを使用して、ボタンをクリックしたときに、両方のテーブルにこのデータを挿入したいんだ
は、ここに挿入する方法です最初のテーブル(tblProducts)では、Brandsテーブルには何も挿入されませんが、私はここで問題と思われるものは確かではありません。 BrandIDとProductIDの両方(両方のテーブル)が自動インクリメントに設定されていることに注意してください。
ブランド表の外来キーが製品表に制約がありますか?そうであれば、商品テーブルに挿入されたproductIDをブランドテーブルへの挿入に含める必要があります – RH6
@ RH6早く応答してくれてありがとうございます。はい、ProductIdはBrandsテーブルの外部キーです自動増加。 prod.ProductId = br.ProductIdのようなものを含めるべきだと言っていますか? –
これまでに挿入した製品テーブルからプライマリキー(productID)を取得してから、ブランドテーブルに挿入する際には、1対1であるとみなして外部キーを一致させる必要があります。 編集:私がちょうど投稿した答えは、 – RH6