I'm a beginner asp.net programmer and my project is online shopping classes I have some problem in it
I have 4 tables with some foreign key between them...
CREATE TABLE [dbo].[orderdetails]
(
[orderid] INT NOT NULL,
[classid] INT NOT NULL,
CONSTRAINT [PK_orderdetails]
PRIMARY KEY CLUSTERED ([orderid] ASC, [classid] ASC)
);
CREATE TABLE [dbo].[order]
(
[orderid] INT IDENTITY (300, 1) NOT NULL,
[customerid] INT NOT NULL,
CONSTRAINT [PK_order]
PRIMARY KEY CLUSTERED ([orderid] ASC)
);
CREATE TABLE [dbo].[customer]
(
[customerid] INT IDENTITY (200, 1) NOT NULL,
[firstname] NVARCHAR (50) NOT NULL,
[lastname] NVARCHAR (50) NOT NULL,
[phone] INT NOT NULL,
CONSTRAINT [PK_Table_1]
PRIMARY KEY CLUSTERED ([customerid] ASC)
);
CREATE TABLE [dbo].[class]
(
[classid] INT IDENTITY (100, 1) NOT NULL,
[numofclass] INT NOT NULL,
[numofstud] INT NOT NULL,
[totalprice] INT NOT NULL,
CONSTRAINT [PK_class]
PRIMARY KEY CLUSTERED ([classid] ASC)
);
FK_orderdetails_order
FK_order_customer
FK_orderdetails_class
I have three pages and in first page I pass some data to another page and in second page I set my data to my DB.
First page code
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Data.SqlClient;
public partial class _Default : System.Web.UI.Page
{
static int totalprice = 0;
protected void Page_Load(object sender, EventArgs e)
{
int studprice = Convert.ToInt32(Numofstud.SelectedValue) * 6;
int classprice = Convert.ToInt32(Numofclass.SelectedValue) * 190;
totalprice = studprice + classprice;
lblTotalprice.Text = string.Format("{0}", totalprice);
}
protected void Numofstud_SelectedIndexChanged(object sender, EventArgs e)
{
int studprice = Convert.ToInt32(Numofstud.SelectedValue) * 6;
int classprice = Convert.ToInt32(Numofclass.SelectedValue) * 190;
totalprice = studprice + classprice;
lblTotalprice.Text = string.Format("{0}", totalprice);
}
protected void Numofclass_SelectedIndexChanged(object sender, EventArgs e)
{
int studprice = Convert.ToInt32(Numofstud.SelectedValue) * 6;
int classprice = Convert.ToInt32(Numofclass.SelectedValue) * 190;
totalprice = studprice + classprice;
lblTotalprice.Text = string.Format("{0}", totalprice);
}
protected void Registerbtn_Click(object sender, EventArgs e)
{
Session["Numofclass"] = Numofclass.SelectedItem.Value;
Session["totalprice"] = totalprice;
Session["Numofstud"] = Numofstud.SelectedItem.Value;
Response.Redirect("account.aspx");
}
}
Second page code:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Data.SqlClient;
public partial class account : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void buybtn_Click(object sender, EventArgs e)
{
SqlConnection con = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["miztahrirtest2DB"].ToString());
SqlCommand cmd = new SqlCommand("insert into customer (firstname, lastname, phone) values (@firstname, @lastname, @phone)", con);
cmd.Parameters.AddWithValue("firstname", firstnametxt.Text);
cmd.Parameters.AddWithValue("lastname", lastnametxt.Text);
cmd.Parameters.AddWithValue("phone", phonetxt.Text);
con.Open();
cmd.ExecuteNonQuery();
con.Close();
SqlCommand cmd2 = new SqlCommand("insert into class (numofstud, numofclass, totalprice) values (@numofstud, @numofclass, @totalprice)", con);
cmd2.Parameters.AddWithValue("numofclass", Session["Numofclass"]);
cmd2.Parameters.AddWithValue("numofstud", Session["Numofstud"]);
cmd2.Parameters.AddWithValue("totalprice", Session["totalprice"]);
con.Open();
cmd2.ExecuteNonQuery();
con.Close();
SqlCommand cmd3 = new SqlCommand("insert into order ....
Response.Redirect("bank.aspx");
}
}
My problem is that I don't know how to insert value into tables which have foreign key and primary key.cmd1 and cmd2 are working correctly but I can't write something to set order table and orderdetails table which They have a foreign key from another table...
When you inserting parent table you should put scope_identity() end of insert command. And you should use execute scalar. Scope identity give you inserted id by execute scalar. After then you can insert child items with this parent id.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With