从 EnterpriseLibrary 获取 LONG RAW 数据(字节)
Obtaining LONG RAW Data (Bytes) from EnterpriseLibrary
我在从 oracle 获取图像字节数据时遇到问题。 reader("image")
总是返回 0 长度。他们有什么解决方法吗?如果我使用 oledb
那么它可以工作但不能使用 Microsoft EnterpriseLibrary
.
using (IDataReader reader = ExecuteNonQueryOracle(Query))
{
while (reader.Read) {
dict("image") = reader("image");
}
}
public object ExecuteNonQueryOracle(string Query)
{
using (dbCommand == CurrentDatabase.GetSqlStringCommand(Query)) {
dbCommand.CommandType = CommandType.Text;
return CurrentDatabase.ExecuteReader(dbCommand);
}
}
尝试使用 OracleDataReader
和 OracleBlob
作为数据类型:
using (OracleDataReader reader = cmd.ExecuteReader())
{
while (reader.Read())
{
if (!reader.IsDBNull(reader.GetOrdinal("FILE")))
{
OracleBlob doc = reader.GetOracleBlob(reader.GetOrdinal("FILE"));
if (!doc.IsNull)
{
docBytes = new byte[doc.Length];
doc.Read(docBytes, 0, (int)doc.Length);
}
}
}
}
如果 ExecuteNonQuery 方法返回 0,那么一个原因可能很明显,即您的查询的 where 子句与 table(s) 中的任何行都不匹配。
我从网上得到了这个帖子,这可能有帮助
另一个发生在我身上的案例是,当我使用企业库数据应用程序块使用 ExecuteNonQuery 方法执行更新 sql 查询时,我使用数据库对象的 AddInParameter 方法传递输入参数顺序与我更新中的参数顺序不匹配 sql 特别是 where clause.So 中的输入参数 一旦我在 AddInParameter 子句的末尾使用 AddInParameter 传入 where 子句参数,问题就解决了立即。
我在从 oracle 获取图像字节数据时遇到问题。 reader("image")
总是返回 0 长度。他们有什么解决方法吗?如果我使用 oledb
那么它可以工作但不能使用 Microsoft EnterpriseLibrary
.
using (IDataReader reader = ExecuteNonQueryOracle(Query))
{
while (reader.Read) {
dict("image") = reader("image");
}
}
public object ExecuteNonQueryOracle(string Query)
{
using (dbCommand == CurrentDatabase.GetSqlStringCommand(Query)) {
dbCommand.CommandType = CommandType.Text;
return CurrentDatabase.ExecuteReader(dbCommand);
}
}
尝试使用 OracleDataReader
和 OracleBlob
作为数据类型:
using (OracleDataReader reader = cmd.ExecuteReader())
{
while (reader.Read())
{
if (!reader.IsDBNull(reader.GetOrdinal("FILE")))
{
OracleBlob doc = reader.GetOracleBlob(reader.GetOrdinal("FILE"));
if (!doc.IsNull)
{
docBytes = new byte[doc.Length];
doc.Read(docBytes, 0, (int)doc.Length);
}
}
}
}
如果 ExecuteNonQuery 方法返回 0,那么一个原因可能很明显,即您的查询的 where 子句与 table(s) 中的任何行都不匹配。
我从网上得到了这个帖子,这可能有帮助
另一个发生在我身上的案例是,当我使用企业库数据应用程序块使用 ExecuteNonQuery 方法执行更新 sql 查询时,我使用数据库对象的 AddInParameter 方法传递输入参数顺序与我更新中的参数顺序不匹配 sql 特别是 where clause.So 中的输入参数 一旦我在 AddInParameter 子句的末尾使用 AddInParameter 传入 where 子句参数,问题就解决了立即。