我datatable是这样的, 数据库有两个表,一个是ORDER 里面有orderid 和数量 另一个是产品详细表格也包括orderid 请问怎样讲DATATABLE的数据输入这两个表呢?
protected void showorder()
{
if (Session["orderlist"] == null)
{ orlist.Columns.Add(new DataColumn("productid", typeof(string)));
orlist.Columns.Add(new DataColumn("name", typeof(string)));
orlist.Columns.Add(new DataColumn("price", typeof(decimal)));
orlist.Columns.Add(new DataColumn("qty", typeof(string)));
orlist.Columns.Add(new DataColumn("subtotal", typeof(decimal)));
Session["orderlist"] = orlist;
}
else
{
orlist = (DataTable)Session["orderlist"];
}
if (Request.QueryString["orderid"] != null)
{
string lsid = Request.QueryString["orderid"];
additem(lsid);
}
showitem(); } private void showitem()
{
diplayorder.DataSource = orlist;
diplayorder.DataBind();
} protected void list_del(object source, GridViewDeleteEventArgs e)
{
if (Session["orderlist"] != null)
{
orlist = (DataTable)Session["orderlist"];
orlist.Rows.RemoveAt(0);
showitem();
}
this.errorMessage.Visible = true;
}
private void additem(string lsid)
{
int quantity = 1;
bool same = false; SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString);
con.Open();
SqlCommand cmd = new SqlCommand("showorder", con);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("@productid", SqlDbType.VarChar, 50);
cmd.Parameters["@productid"].Value = lsid;
SqlDataReader dr = cmd.ExecuteReader(); foreach (DataRow prorow in orlist.Rows)
{
if (prorow[0].ToString() == lsid)
{
quantity = Convert.ToInt32(prorow[3].ToString());
quantity++;
prorow[3] = quantity;
prorow[4] = quantity * Convert.ToDecimal(prorow[2].ToString());
same = true;
}
}
if (!same)
{
if (dr.Read())
{
prorow = orlist.NewRow();
prorow[0] = lsid;
prorow[1] = dr["p_name"].ToString();
prorow[2] = dr["price"].ToString();
prorow[3] = quantity;
prorow[4] = quantity * Convert.ToDecimal(dr[2].ToString());
orlist.Rows.Add(prorow);
}
ss = lsid;
aa = quantity;
}
Session["orderlist"] = orlist;
} protected void updatecart_Click(object sender, EventArgs e)
{
orlist = (DataTable)Session["orderlist"];
for (int i = 0; i < diplayorder.Rows.Count; i++)
{
orlist.Rows[i][3] = Convert.ToInt32(((TextBox)diplayorder.Rows[i].FindControl("qty")).Text);
}
for (int i = 0; i < orlist.Rows.Count; i++)
{
orlist.Rows[i][4] = Convert.ToInt32(orlist.Rows[i][3]) * Convert.ToDecimal(orlist.Rows[i][2]);
}
showitem();
}
protected void showorder()
{
if (Session["orderlist"] == null)
{ orlist.Columns.Add(new DataColumn("productid", typeof(string)));
orlist.Columns.Add(new DataColumn("name", typeof(string)));
orlist.Columns.Add(new DataColumn("price", typeof(decimal)));
orlist.Columns.Add(new DataColumn("qty", typeof(string)));
orlist.Columns.Add(new DataColumn("subtotal", typeof(decimal)));
Session["orderlist"] = orlist;
}
else
{
orlist = (DataTable)Session["orderlist"];
}
if (Request.QueryString["orderid"] != null)
{
string lsid = Request.QueryString["orderid"];
additem(lsid);
}
showitem(); } private void showitem()
{
diplayorder.DataSource = orlist;
diplayorder.DataBind();
} protected void list_del(object source, GridViewDeleteEventArgs e)
{
if (Session["orderlist"] != null)
{
orlist = (DataTable)Session["orderlist"];
orlist.Rows.RemoveAt(0);
showitem();
}
this.errorMessage.Visible = true;
}
private void additem(string lsid)
{
int quantity = 1;
bool same = false; SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString);
con.Open();
SqlCommand cmd = new SqlCommand("showorder", con);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("@productid", SqlDbType.VarChar, 50);
cmd.Parameters["@productid"].Value = lsid;
SqlDataReader dr = cmd.ExecuteReader(); foreach (DataRow prorow in orlist.Rows)
{
if (prorow[0].ToString() == lsid)
{
quantity = Convert.ToInt32(prorow[3].ToString());
quantity++;
prorow[3] = quantity;
prorow[4] = quantity * Convert.ToDecimal(prorow[2].ToString());
same = true;
}
}
if (!same)
{
if (dr.Read())
{
prorow = orlist.NewRow();
prorow[0] = lsid;
prorow[1] = dr["p_name"].ToString();
prorow[2] = dr["price"].ToString();
prorow[3] = quantity;
prorow[4] = quantity * Convert.ToDecimal(dr[2].ToString());
orlist.Rows.Add(prorow);
}
ss = lsid;
aa = quantity;
}
Session["orderlist"] = orlist;
} protected void updatecart_Click(object sender, EventArgs e)
{
orlist = (DataTable)Session["orderlist"];
for (int i = 0; i < diplayorder.Rows.Count; i++)
{
orlist.Rows[i][3] = Convert.ToInt32(((TextBox)diplayorder.Rows[i].FindControl("qty")).Text);
}
for (int i = 0; i < orlist.Rows.Count; i++)
{
orlist.Rows[i][4] = Convert.ToInt32(orlist.Rows[i][3]) * Convert.ToDecimal(orlist.Rows[i][2]);
}
showitem();
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货