Как сохранить свернутый макет 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);
и проверьте, что вы храните в БД.