我想读一读来自XtrapivotGrid of DevExpress的“流”。我可以将它保存在计算机中,但我想要的是将它保存在我的dataset中的一个名为dataset1的表中。现在,我有允许将其保存在目录Temp:.
Using FS As New IO.FileStream("D:\Temp\qqc.layout", IO.FileMode.Create)
PivotGridControl1.SaveLayoutToStream(FS)
End Using
Dim read As New System.IO.FileStream("D:\Temp\qqc.layout", IO.FileMode.Open, IO.FileAccess.Read)
DataSet1.LayoutMainRapport.ReadXml(read)
DataSet1.AcceptChanges()
read.Close()表LayoutMainRapport有3列:
流的输出是xml。
提前谢谢!
发布于 2013-05-22 19:10:43
我只需为xml保存一个名称,然后将其保存到我的数据集中。
Dim saveDialog As SaveLayout = New SaveLayout
If saveDialog.ShowDialog() = Windows.Forms.DialogResult.OK Then
Dim read As New IO.MemoryStream
PivotGridControl1.SaveLayoutToStream(read)
read.Position = 0
Dim lecteur As New IO.StreamReader(read)
Dim ligne As DataRow = DataSet1.LayoutMainRapport.NewRow()
ligne("Nom") = saveDialog.txtNom.Text
ligne("Contenu") = lecteur.ReadToEnd()
DataSet1.LayoutMainRapport.Rows.Add(ligne)
LayoutMainRapportTableAdapter.Update(DataSet1)
End If发布于 2013-03-27 13:14:45
我认为您应该将保存的布局转换为字符串,然后将此字符串保存到数据库中(当然,您可以从数据库字符串值加载此布局):
Private Function SaveLayoutToString(ByVal dxControl As DevExpressControl) As String
Using ms As MemoryStream = New MemoryStream()
dxControl.SaveLayoutToStream(ms)
Return Convert.ToBase64String(ms.ToArray())
End Using
End Function
Private Sub RestoreLayoutFromString(ByVal dxControl As DevExpressControl, ByVal layout As String)
If String.IsNullOrEmpty(layout) Then
Return
End If
Using ms As MemoryStream = New MemoryStream(Convert.FromBase64String(layout))
dxControl.RestoreLayoutFromStream(ms)
End Using
End Sub这里DevExpressControl dxControl是DevExpress控件,它支持存储和加载布局(XtraPivotGrid、XtraGrid、XtraLayoutControl等)。
https://stackoverflow.com/questions/15640033
复制相似问题