//myCommand.ExecuteNonQuery();myCommand.CommandText = "";      //////这里怎么不填存储过程名称
myCommand.CommandType = CommandType.StoredProcedure; 

解决方案 »

  1.   

    try
    {
    for(int i = 0; i < j;i++)
    { myCommand.CommandText = "insert into temp values('"+sSql[i]+"')";myCommand.ExecuteNonQuery();
    }
      

  2.   

    第二次执行之前也要执行
    objConnect.open();
    有么?
      

  3.   

    存储过程名一开始就传近来了第一句话中的sProcName。
    objConnect.open()在一开始就默认打开了,一直到事务执行结束才关闭。先谢谢各位啊,顶着先。!
      

  4.   

    好像在
    finally 
    {
    DisconnectDB();
    }
    关闭了连接
      

  5.   

    是的,说对了DisconnectDB();是自己写的函数,在一开始还执行了connectDB()
      

  6.   

    what error did you get?? what database are you using? do you have those tables/stored procedures in your database??
    OleDbCommand myCommand = new OleDbCommand(sProcName,objConnect);
    OleDbTransaction myTrans = objConnect.BeginTransaction();
    myCommand.Transaction = myTrans;try
    {
            System.Text.StringBuilder sb = new System.Text.StringBuilder();
            for(int i = 0; i < j;i++)
            {
                 sb.AppendFormat("insert into temp values('{0}') ", sSql[i]);
            }    myCommand.CommandText = sb.ToString();
        myCommand.CommandType = CommandType.Text; 
        myCommand.ExecuteNonQuery();     myCommand.CommandText = "YourStoredProcedureName";
        myCommand.CommandType = CommandType.StoredProcedure; 
        OleDbParameter myOutputParam = new OleDbParameter("@NewCategoryID",OleDbType.Integer); 
        myOutputParam.Direction = ParameterDirection.Output; 
        myCommand.Parameters.Add(myOutputParam); 
        myCommand.ExecuteNonQuery();
        int newID = (Int32)myCommand.Parameters["@NewCategoryID"].Value; 
        myTrans.Commit();
        
        return 0;
     }
     catch
     {
        try
        {
       myTrans.Rollback();
       return 2;
        }
        catch
        {
       if (myTrans.Connection != null)
       {
      return -1;
       }
        }
        return -2;
     }
     finally 
     {
        DisconnectDB();
     }
      

  7.   

    用的ORACLE9I,不报错直接跳到了catch
      

  8.   

    好象不是批量处理INSERT语句时候的错,好象是执行存储过程的时候不能执行?是不是在一个事务中不能执行两次ExecuteNonQuery啊?
      

  9.   

    catch(Exception er)
    { MessageBox.Show(er.Message);
    }
    看看是什么错误好么??
      

  10.   

    what database are you using?一个事务中能执行两次ExecuteNonQuery1. write out the sql statement and run them in your sql query tool to make sure they work2. post the complete error messages