日期:2014-05-19  浏览次数:20909 次

C#连接Oracle存图片的问题,急了
库文件:
create   table   TESTBLOB
(
    NAME   VARCHAR2(20)   not   null,
    PIC     BLOB
)

主要测试保存图片的问题,如果只有文本是正常的,有图片流数据则出错,采用的Oledb连接,这个已经限制不可更换:

                        string   insert_sql   =   "insert   into   testblob(name,pic)   values( 'aaa ',:pic) ";
                        OleDbCommand   cmd   =   conn.CreateCommand();
                        cmd.CommandType   =   CommandType.Text;
                        cmd.CommandText   =   insert_sql;
                        cmd.Connection   =   conn;

                        cmd.Parameters.Add(new   OleDbParameter( ":pic ",   OleDbType.Binary,   ImageData.Length)).Value   =   ImageData;
                        cmd.ExecuteNonQuery();

以上代码提示:ORA-01008:   并非所有变量都已关联

将参数的冒号改为@,则提示:
在执行命令过程中,发生了一个或多个错误。\r\nORA-00936:   缺少表达式

在网上搜了一下,说Oracle要在参数名前加&,使用时的提示信息同用冒号的:
ORA-01008:   并非所有变量都已关联

现在就差这个图片的了,哪位帮一下了

------解决方案--------------------
oracle存图片比较特别
------解决方案--------------------
楼主你就用pic做参数吧,干嘛前面加个冒号?
------解决方案--------------------
OracleClient  類型問題