如何将AspxPivotGrid的折叠布局保存到SQL数据库?

时间:2017-03-27 19:39:53

标签: asp.net asp.net-mvc devexpress pivot-grid

我正在使用 divexpress pivotgrid control

我想保存并恢复布局。我只需使用Session即可。 但我不知道如何将其保存到我的SQL数据库中。

此代码没有数据库 已更新

protected void ASPxButton1_Click(object sender, EventArgs e)
{
    Session["Layout"] = ASPxPivotGrid1.SaveLayoutToString();

    MemoryStream stream = new MemoryStream(byteArray);

    string cs = ConfigurationManager.ConnectionStrings["HQWebMatajer13"].ConnectionString;
    using (SqlConnection con = new SqlConnection(cs))
    {
        SqlCommand cmd = new SqlCommand();
        cmd.Connection = con;
        cmd.CommandText = "INSERT INTO [HQWebMatajer].[dbo].[ReportSave]([UserID],[ReportName],[UserFileName],[ReportData])VALUES('faisal.3012','TotalSales','faisalxxx',@ReportData)";
        cmd.Parameters.AddWithValue("@ReportData", stream);

        con.Open();
        cmd.ExecuteNonQuery();
    }
    //divServer.InnerHtml = Session["Layout"].ToString();
}

protected void ASPxButton2_Click(object sender, EventArgs e)
{
    string text = "";
    string cs = ConfigurationManager.ConnectionStrings["HQWebMatajer13"].ConnectionString;
    using (SqlConnection con = new SqlConnection(cs))
    {
        SqlCommand cmd = new SqlCommand();
        cmd.Connection = con;
        cmd.CommandText = "select reportdata from [HQWebMatajer].[dbo].[ReportSave] where UserID='faisal.3012'";

        con.Open();

        string xxx = cmd.ExecuteScalar().ToString();
        StreamReader reader = new StreamReader(xxx);
        text = reader.ReadToEnd();
    }
    ASPxPivotGrid1.LoadLayoutFromString(text);
}

更新:保存到数据库正在运行,但是当我尝试从数据库还原时会抛出以下错误

  

System.IO.FileNotFoundException:找不到文件' C:\ Program Files(x86)\ IIS Express \ System.Byte []。

在这一行

StreamReader reader = new StreamReader(xxx);

我不知道如何转换以及转换的位置。同样的问题在this link.中的devexpress中提出。他们提到this stackoverflow。但转换我不明白如何进入我的场景。

由于

1 个答案:

答案 0 :(得分:0)

select reportdata from [HQWebMatajer].[dbo].[ReportSave] where UserID='faisal.3012'

您可以检查数据库中上述行的输出。

您可能没有使用网格数据初始化变量byteArray。中断代码

        MemoryStream stream = new MemoryStream(byteArray);

并检查您存储在DB中的内容。