i am working on an airline reservation system everything compiled nicely...a user is supposed to register to the site then check available flights after that the user can book a flight,but i am having problems when it comes to booking a flight the values can not be inserted in the database and there is an error popping up saying
SqlException was unhandled by user code
Violation of PRIMARY KEY constraint 'PK_Plist'. Cannot insert duplicate key in object 'dbo.Plist'.
The statement has been terminated.
what is wrong or what am i doing that is not right this is my code and an exception is flashing on this code
int i = cmd.ExecuteNonQuery();
the full code
protected void Button1_Click1(object sender, EventArgs e)
{
SqlConnection con = new SqlConnection(constring);
SqlCommand cmd = new SqlCommand();
cmd.CommandType = CommandType.Text;
cmd.Connection = con;
con.Open();
cmd.CommandText = "select flightid from schedule where flightid='" + DropDownList1.Text + "' and Flightname='" + DropDownList2.Text + "' and Fromstation='" + DropDownList3.Text + "' and Tostation='" + DropDownList4.Text + "' and dateandtimings='" + DropDownList6.Text + "'";
SqlDataAdapter da = new SqlDataAdapter();
da.SelectCommand = cmd;
DataSet ds = new DataSet();
da.Fill(ds, "emp");
if (ds.Tables["emp"].Rows.Count > 0)
{
cmd.CommandText = "insert into Plist(Pid,passengername,flightid,Flightname,Fromstation,Tostation,category,Dateandtimings) values('" + Autonumber() + "','" + TextBox1.Text + "','" + DropDownList1.Text + "','" + DropDownList2.Text + "','" + DropDownList3.Text + "','" + DropDownList4.Text + "','" + DropDownList5.Text + "','" + DropDownList6.Text + "')";
int i = cmd.ExecuteNonQuery();
cmd.CommandText = "update pid set pid='" + Autonumber() + "'";
int k = cmd.ExecuteNonQuery();
if (DropDownList5.Text == "Firstclass")
{
cmd.CommandText = "update schedule set Firstclass=Firstclass-1 where flightid='" + DropDownList1.SelectedValue + "'";
int j = cmd.ExecuteNonQuery();
}
else if (DropDownList5.Text == "Bussinessclass")
{
cmd.CommandText = "update schedule set Bussinessclass=Bussinessclass-1 where flightid='" + DropDownList1.SelectedValue + "'";
int j = cmd.ExecuteNonQuery();
}
else
{
cmd.CommandText = "update schedule set Economicclass=Economicclass-1 where flightid='" + DropDownList1.SelectedValue + "'";
int j = cmd.ExecuteNonQuery();
}
if (i > 0)
{
Label.Visible = true;
Label.Text = "success";
}
else
{
Label.Visible = true;
Label.Text = "error";
}
Label16.Visible = true;
Label16.Text = "Your Ticket ID is " + a;
con.Close();
}
else
{
Label16.Visible = true;
Label16.Text = "There is no flight with these details so please check flight schedule and submit your request";
}
}
protected void SqlDataSource4_Selecting(object sender, SqlDataSourceSelectingEventArgs e)
{
}
protected void SqlDataSource5_Selecting(object sender, SqlDataSourceSelectingEventArgs e)
{
}
}
The exception says you're inserting a duplicate primary key; probably Pid is this primary key.
What you can do is take Pid out of your insert, then the value for Pid will come from the database itself. Commonly, primary keys come from a counter.
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