我有一个包含多个列的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
答案 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
属性。