繁体   English   中英

C#数据表未保存在会话中

[英]C# Datatable not saving in Session

我非常困惑,无法弄清楚为什么绑定到gridview之前的数据表没有保存到Session中?

始终为空。

这是我的代码。 Session["Data"] = dts; 应该包含数据。 但是,当我去提取网格视图上的数据时,它是空的

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
    PopulateProductClass();
    PopulateProduct();       
    }
    PopulateOrderList();      
}

private void PopulateOrderList()
{
    DateTime d;
    DateTime d2;

    CustomerInfo ki = CustomerInfoProvider.GetCustomerInfoByUserID(CooneenHelper.GetUserImpersonisationID());
    int nKustomerID = ki.CustomerID;
    DataTable dts = new DataTable();
    dts.Columns.Add("OrderDate", typeof(string));
    dts.Columns.Add("OrderNumber", typeof(string));
    dts.Columns.Add("OrderItemSKUName", typeof(string));
    dts.Columns.Add("SKUNumber", typeof(string));
    dts.Columns.Add("OrderItemStatus", typeof(string));
    dts.Columns.Add("OrderItemUnitCount", typeof(string));
    dts.Columns.Add("mtrx_Code2", typeof(string));

    QueryDataParameters qdp = new QueryDataParameters();
    qdp.Add("@CustomerID", nKustomerID);

    if (drpProductClass.SelectedValue.ToString() != "0" || drpProductClass.SelectedValue.ToString() == null) { qdp.Add("@OrderItemWRClass", drpProductClass.SelectedItem.ToString()); }
    if (drpProduct.SelectedValue.ToString() != "0") { qdp.Add("@OrderItemSKUID", drpProduct.SelectedValue.ToString()); }                
    if (txtStartDate.Text != "") { d = DateTime.Parse(txtStartDate.Text); qdp.Add("@OrderItemDateFrom", d.ToString("yyyy-MM-dd")); }
    if (txtEndDate.Text != "") { d2 = DateTime.Parse(txtEndDate.Text); qdp.Add("@OrderItemDateTo", d2.ToString("yyyy-MM-dd")); }

    DataSet ds = gc.ExecuteQuery("CN_GetOrderItemByCustID", qdp, QueryTypeEnum.StoredProcedure, true);
    foreach (DataRow dr in ds.Tables[0].Rows)
    {
    DataRow drNew = dts.NewRow();
    drNew["OrderDate"] = ValidationHelper.GetDateTime(dr["OrderDate"], DateTime.Now).ToShortDateString();
    drNew["OrderNumber"] = dr["OrderNumber"].ToString();
    drNew["OrderItemSKUName"] = dr["OrderItemSKUName"].ToString();
    drNew["SKUNumber"] = dr["SKUNumber"].ToString();
    drNew["OrderItemStatus"] = dr["OrderItemStatus"].ToString();
    drNew["OrderItemUnitCount"] = dr["OrderItemUnitCount"].ToString();
    drNew["mtrx_Code2"] = dr["mtrx_Code2"].ToString();
    dts.Rows.Add(drNew);
    }

    //Clear the TextBox
    litResults.Text = String.Empty;

    if (dts.Rows.Count == 1)
    litResults.Text = "" + dts.Rows.Count.ToString() + " Order Items";
    else
    litResults.Text = "" + dts.Rows.Count.ToString() + " Order Items";

    gvOrderItems.Visible = true;
    gvOrderItems.DataSource = dts.DefaultView;      
    gvOrderItems.DataBind();

    Session["Data"] = dts;

    if (dts.Rows.Count > 1) litResults.Text += " - Showing page " + (gvOrderItems.PageIndex + 1).ToString() + " of " + gvOrderItems.PageCount.ToString();

}

您的代码对我来说很好...

protected void Page_Load(object sender, EventArgs e)
{
    PopulateOrderList();
}

private void PopulateOrderList()
{
    DateTime d;
    DateTime d2;
    DataTable dts = new DataTable();
    dts.Columns.Add("OrderDate", typeof(string));
    dts.Columns.Add("OrderNumber", typeof(string));
    dts.Columns.Add("OrderItemSKUName", typeof(string));
    dts.Columns.Add("SKUNumber", typeof(string));
    dts.Columns.Add("OrderItemStatus", typeof(string));
    dts.Columns.Add("OrderItemUnitCount", typeof(string));
    dts.Columns.Add("mtrx_Code2", typeof(string));

        DataRow drNew = dts.NewRow();
        drNew["OrderDate"] = DateTime.Now.ToShortDateString();
        drNew["OrderNumber"] = "122";
        drNew["OrderItemSKUName"] = "sku";
        drNew["SKUNumber"] = "skunum";
        drNew["OrderItemStatus"] = "Done";
        drNew["OrderItemUnitCount"] = "1290";
        drNew["mtrx_Code2"] ="abc123";
        dts.Rows.Add(drNew);

    Session["Data"] = dts;
    gridview.Visible = true;
    gridview.DataSource = dts.DefaultView;
    gridview.DataBind();


}

protected void gridview_SortCommand(object source, DataGridSortCommandEventArgs e)
{
    DataTable dt = (DataTable)Session["Data"];
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM