string[] _proceName ={ "@CMD", "@CompanyID", "@CompanyCode", "@CompanyName", "@CompanyDesc", "@CompanyPhone", "@CompanyEmail", "@HREmail", "@HRPhone", "@Grade", "@Status", "@PassWord" };
            DbType[] _dbType ={ DbType.String, DbType.Int32, DbType.String, DbType.String, DbType.String, DbType.String, DbType.String, DbType.String, DbType.String, DbType.Int32, DbType.Int16, DbType.String };
            object[] _values ={CMD,company.CompanyID,company.CompanyCode,company.CompanyName,company.CompanyDesc,company.CompanyPhone,company.CompanyEmail,company.HREmail,company.HRPhone,company.Grade,company.status,company.PassWord };sqlcmd = SqlCon.SqlDataCommandCreater ProcedureName,_proceName ,_dbType ,_values );
 return sqlcmd.ExecuteNonQuery();
老是报错说我没有给他们传参数 大侠们看看阿

解决方案 »

  1.   

    用的是sql2000 vs.net 2005这样用不可以么?
      

  2.   

    传参数最好用SqlParameter[] oParms = new SqlParameter[n];
    然后在oParms 里添加参数
      

  3.   

    string[] _proceName ={ "@CMD", "@CompanyID", "@CompanyCode", "@CompanyName", "@CompanyDesc", "@CompanyPhone", "@CompanyEmail", "@HREmail", "@HRPhone", "@Grade", "@Status", "@PassWord" };---〉string[] _proceName ={ "CMD", "CompanyID", "CompanyCode", "CompanyName", "CompanyDesc", "CompanyPhone", "CompanyEmail", "HREmail", "HRPhone", "Grade", "Status", "PassWord" };
      

  4.   

    sqlcmd = SqlCon.SqlDataCommandCreater ProcedureName,_proceName ,_dbType ,_values );
    少了括号
      

  5.   

    ALTER PROCEDURE dbo.sp_CompanyInfo_update 
    @CMD  NVARCHAR(20)='',
    @CompanyID  INT=0,
    @CompanyCode  NVARCHAR(20),
    @CompanyName  NVARCHAR(200)='',
    @CompanyDesc  NVARCHAR(4000)='',
    @Password  NVARCHAR(50)='',
    @HREmail  NVARCHAR(50)='',
    @CompanyPhone NVARCHAR(50)='',
    @HRPhone  NVARCHAR(50)='',
    @CompanyEmail  NVARCHAR(50)='',
    @Grade  INT=0,
    @Status    INT='0'
    AS
    IF  @CMD  IS NULL
      BEGIN
        PRINT  N'PARAM  @CMD  CAN NOT IS NULL!'
    RETURN 0
    END


    BEGIN TRANSACTION
    IF(@CMD='INSERT')
    BEGIN
    IF(SELECT COUNT(*) FROM CompanyInfo WHERE CompanyCode=@CompanyCode)>0
    RETURN 0
    INSERT INTO  CompanyInfo
    (
    CompanyCode,
    CompanyName,
    PassWord,
    HREmail,
    CompanyEmail,
    HRPhone,
    CompanyPhone,
    Grade,
    Status
    )
    VALUES
    (
    @CompanyCode,
    @CompanyName,
    @PassWord,
    @HREmail,
    @CompanyEmail,
    @HRPhone,
    @CompanyPhone,
    @Grade,
    @Status
    )
    END
    ELSE IF(@CMD='UPDATE')
    BEGIN
    UPDATE CompanyInfo SET
      CompanyCode=@CompanyCode,
      CompanyName=@CompanyName,
    PassWord=@PassWord,
    HREmail=@HREmail,
    CompanyEmail=CompanyEmail,
    HRPhone=@HRPhone,
    CompanyPhone=CompanyPhone,
    Grade=@Grade,
    Status=@Status
    WHERE CompanyID=@CompanyID
    END
    ELSE IF(@CMD='DELETE')
    BEGIN
      UPDATE  CompanyInfo SET Status=-1 WHERE CompanyID=@CompanyID
      UPDATE JobsInfo SET Status='0' WHERE CompanyID=@CompanyID
      END
      
      
    ELSE IF(@CMD='SELECT')
     BEGIN
      IF(@PassWord<>''AND @CompanyCode<>'')
     SELECT TOP 1 * FROM CompanyInfo WHERE CompanyCode=@CompanyCode  AND PassWord=@Password
     ELSE IF(@CompanyID>0)
     SELECT TOP 1 *FROM CompanyInfo WHERE  CompanyID=@CompanyID 
     ELSE IF(@CompanyCode<>'')
      SELECT TOP 1* FROM CompanyInfo  WHERE CompanyCode=@CompanyCode
      ELSE
      RETURN 0
      END
      
      
      IF @@ERROR<>0
      BEGIN
       ROLLBACK TRANSACTION
       RETURN 
       END
       ELSE
    BEGIN
      COMMIT TRANSACTION
      RETURN 
    END
    RETURN


    报的错是:
    System.Data.SqlClient.SqlException: Transaction count after EXECUTE indicates that a COMMIT or ROLLBACK TRANSACTION statement is missing. Previous count = 6, current count = 7.
    指点一下。
    又出错了