I'm having a bit of a problem here, on page_load() I'm setting values for multiple HTML inputs:
session = Request.Cookies["Login"];
userid = session.Values["UserID"].ToString();
email = session.Values["Email"].ToString();
username = session.Values["Username"].ToString();
type = session.Values["Type"].ToString();
branchid = session.Values["BranchID"].ToString();
branchName = session.Values["BranchName"].ToString();
ownerID = session.Values["OwnerID"].ToString();
if (Request.QueryString.Count != 0)
{
if (!Page.IsPostBack)
{
carid = Request.QueryString["carid"];
cmd.CommandText = "select * from Client where BranchID='" + branchid + "'";
DataTable allclients = new DataTable();
sda.Fill(allclients);
if (allclients.Rows.Count > 0)
{
foreach (DataRow dr in allclients.Rows)
{
ddl_client.Items.Add(dr["client_name"].ToString());
}
}
cmd.CommandText = "select distinct(CompanyName) from CarModels";
DataTable carcompanies = new DataTable();
sda.Fill(carcompanies);
if (carcompanies.Rows.Count > 0)
{
foreach (DataRow dr in carcompanies.Rows)
{
ddl_car_company.Items.Add(dr["CompanyName"].ToString());
}
}
cmd.CommandText = "select ModelYear from CarModelYear order by ModelyearID desc";
DataTable modelyear = new DataTable();
sda.Fill(modelyear);
if (modelyear.Rows.Count > 0)
{
foreach (DataRow dr in modelyear.Rows)
{
txt_car_model.Items.Add(dr["ModelYear"].ToString());
}
}
cmd.CommandText = "select * from Car where car_id='" + carid + "' and userid='" + userid + "'";
dt.Clear();
dt.Columns.Clear();
sda.Fill(dt);
if (dt.Rows.Count > 0)
{
txt_car_plate.Value = dt.Rows[0]["car_plate"].ToString();
ddl_car_company.SelectedValue = dt.Rows[0]["car_company"].ToString();
cmd.CommandText = "select CarName from CarModels where CompanyName='" + ddl_car_company.SelectedItem.Value + "'";
DataTable carnames = new DataTable();
sda.Fill(carnames);
if (carnames.Rows.Count > 0)
{
ddl_car_type.Items.Clear();
foreach (DataRow dr in carnames.Rows)
{
ddl_car_type.Items.Add(dr["CarName"].ToString());
}
}
txt_car_model.Items.FindByValue(dt.Rows[0]["car_model"].ToString()).Selected = true;
ddl_car_type.SelectedValue = dt.Rows[0]["car_type"].ToString();
txt_body_number.Value = dt.Rows[0]["body_number"].ToString();
txt_car_color.Value = dt.Rows[0]["car_color"].ToString();
txt_notes.Value = dt.Rows[0]["notes"].ToString();
clientid = dt.Rows[0]["client_id"].ToString();
cmd.CommandText = "select * from Client where client_id='" + clientid + "'";
DataTable client = new DataTable();
sda.Fill(client);
if (client.Rows.Count > 0)
{
ddl_client.Items.FindByValue(client.Rows[0]["client_name"].ToString()).Selected = true;
txt_client_cellphone1.Value = client.Rows[0]["client_cellphone"].ToString();
}
}
}
}
This is a page for editing current values with new ones...
Now for the editing code it's just a SQL update command..
cmd.Parameters.AddWithValue("@plate", Request["txt_car_plate"]);
cmd.Parameters.AddWithValue("@company", Request["ddl_car_company"]);
cmd.Parameters.AddWithValue("@type", Request["ddl_car_type"]);
cmd.Parameters.AddWithValue("@model", Request["txt_car_model"]);
cmd.Parameters.AddWithValue("@body", Request["txt_body_number"]);
cmd.Parameters.AddWithValue("@color", Request["txt_car_color"]);
cmd.Parameters.AddWithValue("@notes", Request["txt_notes"]);
cmd.Parameters.AddWithValue("@cid", clientid);
cmd.CommandText = "update Car set car_plate=@plate,car_company=@company,car_type=@type,car_model=@model,body_number=@body,car_color=@color,notes=@notes,client_id=@cid where car_id='" + carid + "'";
cmd.ExecuteNonQuery();
Response.Redirect("vehicle.aspx?carid=" + carid);
What am I missing here? I tried removing the (!Page.IsPostBack) part, but I get this error :
The parameterized query '(@plate nvarchar(11),@company nvarchar(17),@type nvarchar(2),@mo' expects the parameter '@cid', which was not supplied
Although I'm opening this page with code :
if (carid.Length > 0)
{
Response.Redirect("Edit.aspx?carid=" + carid);
}
So it's obvious that carid is never null !
Please any help would be much appreciated