Oracle BLOB数据类型为RichTextBox

时间:2015-11-06 09:44:51

标签: database vb.net oracle blob

我有一个包含多个列的Oracle表。 BLOB数据类型中的其中一列。 我在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

1 个答案:

答案 0 :(得分:1)

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

  • 用于保存在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属性。