各位大侠好,我现在要把一个文件上传到blob字段中,在我电脑上运行并连接服务器oracle数据库时,有时候上传成功,有时候就报ORA-12571:TNS:包写入程序失败,而且就在执行插入blob字段的sql语句是报错
当我将工程发布到服务器IIS后,当执行相同的SQL语句时报“ORA-01036: �Ƿ��ı䁿û/�”错误,后面是乱码,我也各位大侠帮帮忙!!
程序如下public OleDbConnection ConnectionDatabase1() {
string conn_str = "provider=OraOLEDB.Oracle;data source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=10.16.35.191)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=zjfk)));User Id=carbon;Password=carbon;";
OleDbConnection conn = new OleDbConnection(conn_str);
//conn.ConnectionTimeout = 9000;
conn.Open();
return conn;
}
try
{
  using (conn = db.ConnectionDatabase1())
  {
   using (cmd = new OleDbCommand())
   {     int maxID = this.GetMaxID("select max(id) AS MAXID from ZJFK.MAP_INFO", "ID");
     int tempID = maxID + 1;
     string sql = "insert into ZJFK.MAP_DATA(ID,DZWD) values(" + tempID + ",:stm)";
     cmd.Connection = conn;
     cmd.CommandText = sql;
     cmd.CommandType = CommandType.Text;
     cmd.Parameters.Add("stm", System.Data.OleDb.OleDbType.Binary, this.file.FileBytes.Length);
     cmd.Parameters[0].Value = this.file.FileBytes;
    try {
int i = cmd.ExecuteNonQuery();
}
   catch (Exception ex)
{
string s = ex.Message;
Response.Write("<script language = 'javascript'>alert('"+s+"')</script>");
}
}
cmd.Dispose();
}
}
finally
{
db.CloseConn(conn);
}其他关于数据库的操作都是正常的,大家给看看!!谢谢

解决方案 »

  1.   

    改进一下,先insert,再update:
    try
    {
      using (conn = db.ConnectionDatabase1())
      {
       using (cmd = new OleDbCommand())
       {     int maxID = this.GetMaxID("select max(id) AS MAXID from ZJFK.MAP_INFO", "ID");
         int tempID = maxID + 1;
         string sql = "insert into ZJFK.MAP_DATA(ID) values(" + tempID + ")";
         cmd.Connection = conn;
         cmd.CommandText = sql;
         cmd.CommandType = CommandType.Text;
         cmd.Parameters.Add("stm", System.Data.OleDb.OleDbType.Binary, this.file.FileBytes.Length);
         cmd.Parameters[0].Value = this.file.FileBytes;
        try {
             int i = cmd.ExecuteNonQuery();
             sql = "update ZJFK.MAP_DATA set DZWD=:DZWD where ID=:id";
             cmd.CommandText = sql;
             cmd.CommandType = CommandType.Text;
             cmd.Parameters.Add("DZWD", System.Data.OleDb.OleDbType.Binary, this.file.FileBytes.Length);
             cmd.Parameters[0].Value = this.file.FileBytes;
             cmd.Parameters.Add("id", System.Data.OleDb.OleDbType.VarChar, 40);
             cmd.Parameters[1].Value = tempID ; 
             i = cmd.ExecuteNonQuery();
             
        }
       catch (Exception ex)
        {
        string s = ex.Message;
        Response.Write("<script language = 'javascript'>alert('"+s+"')</script>");
        }                                
                            }
                            cmd.Dispose();
                        }
                    }
                    finally
                    {
                        db.CloseConn(conn);
                    }