Как сохранить свернутый макет AspxPivotGrid в базе данных SQL?

Я использую 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);

Я не знаю, как конвертировать и где конвертировать. Тот же вопрос задан в devexpress в этой ссылке., Они ссылались на этот стекопоток. Но преобразование я не понимаю, как сделать это в моем сценарии.

Спасибо

1 ответ

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

Вы проверяете, что выводит указанная выше строка в БД.

Возможно, вы не инициализировали переменную byteArray данными сетки. Разбить код на

        MemoryStream stream = new MemoryStream(byteArray);

и проверьте, что вы храните в БД.

Другие вопросы по тегам