0

我正在使用divexpress pivotgrid 控件

我想做保存和恢复布局。我可以简单地使用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);

我不知道如何转换以及在哪里转换。在此链接中的 devexpress 中提出了相同的问题。. 他们提到了这个 stackoverflow。但是我不明白如何将其转换为我的场景。

谢谢

4

1 回答 1

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

您检查数据库中上述行的输出是什么。

您可能尚未使用网格数据初始化变量 byteArray。破解代码在

        MemoryStream stream = new MemoryStream(byteArray);

并检查您存储到数据库中的内容。

于 2017-03-28T04:32:56.987 回答