string strcmd = null;
if (docid=="") // add new record to database
{
strcmd = " insert into t_gw_fwb(zw) values(:i_zw)";
}
else
{
strcmd = "Update T_GW_FWB Set ZW=:i_zw WHERE doc_id=" + docid;
}
System.Data.OracleClient.OracleCommand objCommand = new System.Data.OracleClient.OracleCommand(strcmd,conn); byte[] buffer = new byte[theFile.ContentLength];
theFile.InputStream.Read(buffer,0,theFile.ContentLength); objCommand.Parameters.Add("i_zw",System.Data.OracleClient.OracleType.Blob).Value = buffer;
objCommand.ExecuteNonQuery(); 说明:
buffer值已经获取,我想可能错在带参数的sql语句有错,但也不知具体应该怎么写,原先只写过SQLSERVER下的类似语句,参数前用@,查一下资料说ORACLE参数前用:号,试了也不行,还请各位帮忙看看,谢谢了
if (docid=="") // add new record to database
{
strcmd = " insert into t_gw_fwb(zw) values(:i_zw)";
}
else
{
strcmd = "Update T_GW_FWB Set ZW=:i_zw WHERE doc_id=" + docid;
}
System.Data.OracleClient.OracleCommand objCommand = new System.Data.OracleClient.OracleCommand(strcmd,conn); byte[] buffer = new byte[theFile.ContentLength];
theFile.InputStream.Read(buffer,0,theFile.ContentLength); objCommand.Parameters.Add("i_zw",System.Data.OracleClient.OracleType.Blob).Value = buffer;
objCommand.ExecuteNonQuery(); 说明:
buffer值已经获取,我想可能错在带参数的sql语句有错,但也不知具体应该怎么写,原先只写过SQLSERVER下的类似语句,参数前用@,查一下资料说ORACLE参数前用:号,试了也不行,还请各位帮忙看看,谢谢了
我的doc_id是NUMBER型,不用doc_id='" + docid+"'"这样写,您可以看看我的i_zw参数这样写对不对,您的意思是将:号放在=号前面,这是一个赋值语句呀,这样写我也试过了,是不行的.
objCommand.Parameters.Add("i_zw",System.Data.OracleClient.OracleType.Blob).Value = buffer;
改成
objCommand.Parameters.Add(":i_zw",System.Data.OracleClient.OracleType.Blob).Value = buffer;
System.Data.OracleClient.OracleType.text
用
byte[] buffer=System.Text.Encoding.Default.GetBytes("aaa");
传一下试试看。