2017-03-27 66 views
0

我正在使用divexpress pivotgrid控件如何將摺疊的AspxPivotGrid佈局保存到SQL數據庫?

我想保存並恢復佈局。我可以簡單地通過使用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); 
} 

UPDATE:保存到數據庫的工作,但是當我嘗試從數據庫恢復它引發以下錯誤

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

在這條線

StreamReader reader = new StreamReader(xxx); 

我不知道如何轉換,並在那裏將任何想法。在this link.中發表了同樣的問題。他們提到this stackoverflow。但轉換我不明白如何將其納入我的方案。

感謝

回答

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

你檢查什麼是在數據庫上面一行的輸出。

您可能沒有使用網格數據初始化變量byteArray。中斷代碼爲

 MemoryStream stream = new MemoryStream(byteArray); 

並檢查您要存儲在數據庫中。

相關問題