【问题标题】:Put content of fileStream in dataset将 fileStream 的内容放入数据集中
【发布时间】:2013-03-26 14:48:06
【问题描述】:

我想阅读从 DevExpress 的 XtrapivotGrid 获得的 Stream。我可以将它保存在计算机中,但我想要将它保存在我的数据集中名为 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 列:

  • ID(整数)
  • 姓名(nvarchar(50))
  • 内容(xml)。

流的输出是 xml。

提前致谢!

【问题讨论】:

    标签: vb.net dataset devexpress filestream


    【解决方案1】:

    我认为您应该将保存的布局转换为字符串,然后将此字符串保存到数据库(当然您可以从数据库字符串值中加载此布局):

    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等)

    【讨论】:

      【解决方案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
      

      【讨论】:

        猜你喜欢
        • 2010-09-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-12-13
        • 1970-01-01
        • 2022-01-08
        • 1970-01-01
        • 2011-10-19
        相关资源
        最近更新 更多