高手指点一下迷津:C#+oracle(oledb)存照片,报ORA-01465: invalid hex number,代码见里面内容

来源:百度知道 编辑:UC知道 时间:2024/05/26 21:48:04
protected void Button1_Click(object sender, EventArgs e)
{
var sgtr=ConfigurationManager.AppSettings["ConnStr"];
OleDbConnection myConn = dbcls.GetATempConnection();
OleDbCommand cmd = new OleDbCommand(sgtr,myConn);
cmd.CommandType = CommandType.Text;
//byte[] expbyte = System.Text.Encoding.Unicode.GetBytes("D:\我的文档\My Pictures\Panda004.jpg");
FileStream fsPic = new FileStream(@"D:\我的文档\My Pictures\七剑下天山.jpg", FileMode.Open,FileAccess.Read);
byte[] byPic = new byte[fsPic.Length];
fsPic.Read(byPic, 0, System.Convert.ToInt32(fsPic.Length));

cmd.CommandText = "insert into xlutest (hhhh) values (':hhhh')";
cmd.Parameters.Add(":hhhh", System.Data.OleDb.OleDbType.Binary, System.Convert.ToInt32(byPic.Length));
cmd.Parameters[0].Value = byPic; <

你的字段hhhh是raw/varchar2类型的吗?

因为,oracle中,如果你把一个二进制类型写到字符型字段里时,它会做个类型转换。

你数据库里的存图片的格式是什么?
这个错误时说无效的16进制
应该是你存的格式不对
存文件的话,建议存LOB格式的!