Han*_*svb 4 c# oracle blob streamreader
我尝试读取 Oracle BLOB 字段并显示 RichTextBox 中的内容。我在谷歌上找到的例子几乎相同,但我仍然无法让它工作。我知道 BLOB 字段包含序列化数据。这就是我到目前为止所拥有的:(连接阅读器工作正常)
private void button1_Click_1(object sender, EventArgs e)
{
//testen of een blob is uit te lezen
OracleCommand cmd = new OracleCommand();
cmd.Connection = OraConnection.conn;
cmd.CommandText = "select id, blobfield from test_table where id = '20ED7EDB-406A-43E8-945B-5E63DFCBA7FF'";
cmd.CommandType = CommandType.Text;
OracleDataReader dr = cmd.ExecuteReader();
dr.Read();
OracleBlob BLOB1 = dr.GetOracleBlob(1);
Byte[] Buffer = (Byte[])(dr.GetOracleBlob(1)).Value;
string lookupValue = System.Text.ASCIIEncoding.ASCII.GetString(Buffer);
richTextBox1.Text += lookupValue; //shows: DQStream
richTextBox1.Text += "";
richTextBox1.Text += "1";
richTextBox1.Text += dr.GetOracleBlob(1).Value; //shows: System.Byte[]
richTextBox1.Text += "";
}
Run Code Online (Sandbox Code Playgroud)
OracleBlob
是一个Stream
- 它继承了Stream
.
OracleBlob b = dr.GetOracleBlob(1);
var sr = new System.IO.StreamReader(b);
var content = sr.ReadToEnd();
Run Code Online (Sandbox Code Playgroud)
您应该能够通过这种方式获取数据。
大数据块通常以流的形式传送。
Oracle 文档:OracleBlob https://docs.oracle.com/cd/B19306_01/win.102/b14307/OracleBlobClass.htm
编辑
如果您想将其转换为byte[]
,请尝试以下操作:
Byte[] buffer = (Byte[])(dr.GetOracleBlob(1)).Value;
var content = new String(Encoding.UTF8.GetChars(buffer));
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
11750 次 |
最近记录: |