有个名为SqlHelper.cs的程序中4个一样的函数名称:
        public static int ExecuteNonQuery(CommandType cmdType, string cmdText, params DbParameter[] commandParameters)
        {
            return ExecuteNonQuery((string)null, cmdType, cmdText, commandParameters);
        }        public static int ExecuteNonQuery(DbConnection connection, CommandType cmdType, string cmdText, params DbParameter[] commandParameters)
        {
            int num2;
            DbCommand cmd = Factory.CreateCommand();
            bool isOpen = false;
            int num = 0;
            try
            {
                PrepareCommand(cmd, connection, null, cmdType, cmdText, commandParameters, out isOpen);
                num = cmd.ExecuteNonQuery();
                cmd.Parameters.Clear();
                if (isOpen)
                {
                    connection.Close();
                    connection.Dispose();
                }
                num2 = num;
            }
            catch
            {
                if (connection.State != ConnectionState.Closed)
                {
                    connection.Close();
                    connection.Dispose();
                }
                ClearPool((SqlConnection) connection);
                throw;
            }
            return num2;
        }        public static int ExecuteNonQuery(DbTransaction trans, CommandType cmdType, string cmdText, params DbParameter[] commandParameters)
        {
            int num2;
            DbCommand cmd = Factory.CreateCommand();
            bool isOpen = false;
            int num = 0;
            try
            {
                PrepareCommand(cmd, trans.Connection, trans, cmdType, cmdText, commandParameters, out isOpen);
                num = cmd.ExecuteNonQuery();
                cmd.Parameters.Clear();
                if (isOpen)
                {
                    trans.Connection.Close();
                    trans.Connection.Dispose();
                }
                num2 = num;
            }
            catch
            {
                if (trans.Connection.State != ConnectionState.Closed)
                {
                    trans.Connection.Close();
                    trans.Connection.Dispose();
                }
                ClearPool((SqlConnection) trans.Connection);
                throw;
            }
            return num2;
        }        public static int ExecuteNonQuery(string connectionString, CommandType cmdType, string cmdText, params DbParameter[] commandParameters)
        {
            using (DbConnection connection = Factory.CreateConnection())
            {
                connection.ConnectionString = GetConnectionString(connectionString);
                connection.Open();
                return ExecuteNonQuery(connection, cmdType, cmdText, commandParameters);
            }
        }
另一个文件menber.cs中调用
 public int Add(string UserName, string Pass, string IsTaboo, string WalletMoney, string LastLoginIP, string PhoneNum, string TrueName, string Email, string QQNum, string RegisterIP,string Question, string Answer, string promoter)
        {
            StringBuilder builder = new StringBuilder(" select @UserID=(ISNULL(Max(UserID),0)+1) from TUsers ");
            builder.Append(" if(@UserID<10000) begin set @UserID=10000 end ");
            builder.Append(" INSERT INTO TUsers (UserID,UserName,Pass,NickName,IsTaboo) VALUES (@UserID,@UserName,@Pass,@UserName,@IsTaboo) ");
            builder.Append(" INSERT INTO TUserInfo (UserID,WalletMoney,LastLoginIP,PhoneNum) VALUES (@UserID,@WalletMoney,@LastLoginIP,@PhoneNum) ");
            builder.Append(" DELETE Web_Users WHERE UserID=@UserID ");
            builder.Append(" INSERT INTO Web_Users (UserID,UserName,TrueName,Email,QQNum,RegisterIP,RegGive,Pwd_anw,Pwd_ques,Re) VALUES (@UserID,@UserName,@TrueName,@Email,@QQNum,@RegisterIP,@WalletMoney,@Question,@Answer,@promoter) ");
            SqlParameter[] commandParameters = new SqlParameter[] { new SqlParameter("@UserName", SqlDbType.NVarChar), new SqlParameter("@Pass", SqlDbType.NVarChar), new SqlParameter("@TwoPassword", SqlDbType.NVarChar), new SqlParameter("@IsTaboo", SqlDbType.Int), new SqlParameter("@WalletMoney", SqlDbType.Int), new SqlParameter("@LastLoginIP", SqlDbType.NVarChar), new SqlParameter("@LastLoginTM", SqlDbType.DateTime), new SqlParameter("@PhoneNum", SqlDbType.VarChar), new SqlParameter("@TrueName", SqlDbType.NVarChar), new SqlParameter("@RegisterTM", SqlDbType.DateTime), new SqlParameter("@Email", SqlDbType.NVarChar), new SqlParameter("@QQNum", SqlDbType.NVarChar), new SqlParameter("@RegisterIP", SqlDbType.NVarChar), new SqlParameter("@AgencyName", SqlDbType.NVarChar), new SqlParameter("@AgencyID", SqlDbType.Int), new SqlParameter("@UserID", SqlDbType.Int) };
            commandParameters[0].Value = UserName;
            commandParameters[1].Value = Common.md5(Pass);
            //commandParameters[2].Value = Common.md5(TwoPassword);
            commandParameters[2].Value = IsTaboo;
            commandParameters[3].Value = WalletMoney;
            commandParameters[4].Value = LastLoginIP;
            commandParameters[5].Value = DateTime.Now;
            commandParameters[6].Value = PhoneNum;
            commandParameters[7].Value = TrueName;
            commandParameters[8].Value = DateTime.Now;
            commandParameters[9].Value = Email;
            commandParameters[10].Value = QQNum;
            commandParameters[11].Value = RegisterIP;
            commandParameters[12].Value = Common.md5(Question);
            commandParameters[13].Value = Common.md5(Answer);
            commandParameters[14].Value = promoter;
            //commandParameters[14].Direction = ParameterDirection.Output;
            commandParameters[15].Direction = ParameterDirection.Output;
            try
            {
                SqlHelper.ExecuteNonQuery(CommandType.Text, builder.ToString(), commandParameters);
                return Convert.ToInt32(commandParameters[15].Value);
            }
            catch
            {
                return 0;
            }
        }
这个是按什么顺序执行的?程序哪个地方是不是有问题?这个是向数据库插入数据,但总是不成功!

解决方案 »

  1.   

    up
    这多代码,并且没有Main()方法,怎么帮你看
      

  2.   

    没有办法,现在lz来测试这个函数的条件是最好的了
    F10 + F11 
      

  3.   

    调试,不成功,先看你sql是否正确,参数是否正确,把sql放到数据库中看看有没有错
      

  4.   

    "有个名为SqlHelper.cs的程序中4个一样的函数名称",这个是指函数的重载。
    这么多代码贴出来没有意义,建议楼主设置断点,单步调试,带参数的SQL语句,先看各个参数的值对不对(类型、大小等),然后再到数据库中执行最终形成的SQL语句。根据经验,一般都是由于以上这两个原因引起插入失败!