Поместите содержимое fileStream в набор данных
Я хочу прочитать поток, который я получаю от XtrapivotGrid DevExpress. Я могу сохранить его на компьютере, но я хочу сохранить его в одной из моих таблиц в моем наборе данных под названием 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 столбца:
- Идентификатор (Int)
- Имя (NVARCHAR (50))
- Содержимое (XML).
Выход из потока - XML.
заранее спасибо!
2 ответа
Мне просто нужно было сохранить имя для 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
Я считаю, что вы должны преобразовать сохраненный макет в строку, а затем сохранить эту строку в базе данных (и, конечно, вы можете загрузить этот макет обратно из значения строки базы данных):
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 и т. д.)