编程语言是C#
数据库是ORACLE 8.1.6现在的问题是,BLOB字段可以正常写入数据,但是读数据的时候报错“发生了一个 Oracle 错误,但无法从 Oracle 中检索错误信息。数据类型不被支持。” public static void Main(string[] sParameter)
{
string sConnectionString = "Provider=MSDAORA;User ID=test;Data Source=handing;Password=test;server=192.168.0.5;";
OleDbConnection con = new OleDbConnection(sConnectionString);
con.Open(); OleDbCommand cmd = con.CreateCommand();
OleDbTransaction transaction = con.BeginTransaction();
cmd.Transaction = transaction; try
{
string SQL = "SELECT * from clob_test2";
cmd.CommandText = SQL;
cmd.Prepare(); //在这里出错
OleDbDataReader dreader = cmd.ExecuteReader();
transaction.Commit();
Console.WriteLine("成功!");
}
catch (Exception ex)
{
transaction.Rollback();
Console.WriteLine("失败!" + ex.Message);
} Console.Read();
}
数据库是ORACLE 8.1.6现在的问题是,BLOB字段可以正常写入数据,但是读数据的时候报错“发生了一个 Oracle 错误,但无法从 Oracle 中检索错误信息。数据类型不被支持。” public static void Main(string[] sParameter)
{
string sConnectionString = "Provider=MSDAORA;User ID=test;Data Source=handing;Password=test;server=192.168.0.5;";
OleDbConnection con = new OleDbConnection(sConnectionString);
con.Open(); OleDbCommand cmd = con.CreateCommand();
OleDbTransaction transaction = con.BeginTransaction();
cmd.Transaction = transaction; try
{
string SQL = "SELECT * from clob_test2";
cmd.CommandText = SQL;
cmd.Prepare(); //在这里出错
OleDbDataReader dreader = cmd.ExecuteReader();
transaction.Commit();
Console.WriteLine("成功!");
}
catch (Exception ex)
{
transaction.Rollback();
Console.WriteLine("失败!" + ex.Message);
} Console.Read();
}
网上说ODBC不支持BLOB类型在网上找到一个例程。这是他的连接字符串。
string cnnstr = "provider=OraOLEDB.Oracle;data source=zlkj_kk;User Id=kk;Password=kk;";
provider=OraOLEDB.Oracle。他装的是什么?
try
{
string SQL = "SELECT * from clob_test2";
cmd.CommandText = SQL;
cmd.Prepare(); //在这里出错
OleDbDataReader dreader = cmd.ExecuteReader();
if(dreader.reader())
{
string Read1= read["字段"].tostring()
}
transaction.Commit();
Console.WriteLine("成功!");
}
catch (Exception ex)
{
transaction.Rollback();
Console.WriteLine("失败!" + ex.Message);
} Console.Read(); if(dreader.reader())
{
string Read1= read["字段"].tostring()
}这样可以不??
是否是你需要的效果??
另外只看到con.open();
没看到con.close();
OleDbDataAdapter da = new OleDbDataAdapter();
DataSet ds = new DataSet();
OleDbConnection conn = new OleDbConnection(conn_str);
OleDbCommand cmd = new OleDbCommand("SELECT PHOTO FROM USER WHERE USER_ID = 1", conn);
da.SelectCommand = cmd;
cmd.Connection.Open();
da.Fill(ds); byte[] img = new byte[0];
DataRow dr;
dr = ds.Tables[0].Rows[0]; if (!ds.Tables[0].Rows[0]["PHOTO"].ToString().Equals(""))
{
img = (byte[])dr["PHOTO"];
} Response.ContentType= "image/*";
Response.BinaryWrite (img); conn.Close();
Provider=MSDAORA
provider=OraOLEDB.Oracle
代表什么?有什么意义?是指的使用什么驱动吗?这个是ODBC的驱动还是OLEDB的驱动?