【问题标题】:Oracle BLOB datatype to RichTextBoxOracle BLOB 数据类型到 RichTextBox
【发布时间】:2016-02-07 10:07:56
【问题描述】:

我有一个包含许多列的 Oracle 表。 BLOB 数据类型中的这些列中的 1 个。 我在 VB.NET 中有一个简单的查询,它从这个表中检索所有数据,并填充我的表单。但是,我在使用 BLOB 列时遇到了一些问题。

我有这段代码

 cmd.CommandText = "select * from local_it.local_email_template where name = '" & cb_EmailName.Text & "'"

    dr = cmd.ExecuteReader
    dr.Read()
    tb_Username.Text = dr.Item(1)
    tb_Password.Text = dr.Item(2)
    tb_FromName.Text = dr.Item(3)
    tb_FromEmail.Text = dr.Item(4)
    tb_Host.Text = dr.Item(5)
    n_Port.Value = dr.Item(6)
    cb_Action.Text = dr.Item(7)
    tb_Subject.Text = dr.Item(8)
    rtb_Body.Text = dr.Item(9)
    dr.Close()

但是我在rtb_Body.text = dr.item(9) 线上遇到了一个错误,说

从“Byte()”类型到“String”类型的转换无效

所以我试着说rtb_Body.text = dr.item(9).tostring,但现在我得到了文字

System.Byte[]

在我的 RichRextBox 中。

所以我的问题是:我如何写这个位(或我的查询),以便在我的 RichRextBox 中获得实际文本?

在 Oracle g11 数据库上使用 Visual Studio 2012、VB.NET

【问题讨论】:

    标签: database vb.net oracle blob


    【解决方案1】:

    您可以使用 System.Text 命名空间中的编码函数:

    • 用于保存在 blob 字段中:

      Dim blob_bytes_to_db As Byte() = System.Text.Encoding.ASCII.GetBytes(RichTextBox1.Rtf)

    • 将blob加载到richtextbox:

      RichTextBox1.Rtf = System.Text.Encoding.ASCII.GetChars(blob_bytes_from_db)

    注意:RichTextBox1 .Text 属性只能获取/设置纯文本。如果要获取/设置所有 RTF 代码的格式化文本,请使用 .Rtf 属性。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-10
      • 1970-01-01
      • 2014-11-26
      • 1970-01-01
      • 1970-01-01
      • 2013-05-09
      相关资源
      最近更新 更多