首页 > 解决方案 > 如何为已创建的每个订单分配不同的送货司机?

问题描述

所以我有一个 sql 表,其中包含 driverid 和 drivername 等列

客户结帐后,下面的代码将创建订单。

string deliveryDate = DateTime.Now.AddDays(2).ToString("M/d/yyyy");
SqlConnection con = new SqlConnection(str);

if (Session["buyitems"] != null && Session["Orderid"] != null)
{
    DataTable dt = (DataTable)Session["buyitems"];
    for (int i = 0; i <= dt.Rows.Count - 1; i++)
    {
        string pId = dt.Rows[i]["pid"].ToString();
        int pQuantity = Convert.ToInt16(dt.Rows[i]["pquantity"]);
        SqlDataAdapter sda = new SqlDataAdapter("Select Pquantity from ProductShirt where ProductId ='" + pId + "' ", con);
        DataTable dtbl = new DataTable();
        sda.Fill(dtbl);

        int quantity = Convert.ToInt32(dtbl.Rows[0][0]);
        if (quantity > 0)
        {
            con.Open();
            SqlCommand cmd = new SqlCommand("insert into OrderDetails(orderid,sno,productid,productname,price,quantity,orderdate,status,email,deliverydate,address, driverid) values('" + Session["Orderid"] + "',"
                                 + dt.Rows[i]["sno"] + "," + dt.Rows[i]["pid"] + ",'" + dt.Rows[i]["pname"] + "'," + (Convert.ToInt32(dt.Rows[i]["pprice"])) + "," + dt.Rows[i]["pquantity"] + ",'" + DateTime.Now.ToString("M/d/yyyy") + "','Pending', '" + Session["username"].ToString() + "', '" + deliveryDate + "', '" + TextBox1.Text + "', '" + driverid + '")", con);

            cmd.ExecuteNonQuery();
            con.Close();
        }
    }

    decreaseQuantity();
    clearCart();
    Session["buyitems"] = null;
    Session["deliverydate"] = deliveryDate;
    Response.Redirect(url);
}
else
{
    Response.Redirect("AddtoCart.aspx");
}

我将如何为新订单分配不同的送货司机,例如在创建第一个订单时,将 driver1 分配给它。创建第三个订单后,会将 driver3 分配给它,但如果有第四个订单,则分配的驱动程序列表应从驱动程序 1 重新开始。

标签: c#sqlasp.netwebforms

解决方案


推荐阅读