有个名为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;
}
}
这个是按什么顺序执行的?程序哪个地方是不是有问题?这个是向数据库插入数据,但总是不成功!
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;
}
}
这个是按什么顺序执行的?程序哪个地方是不是有问题?这个是向数据库插入数据,但总是不成功!
解决方案 »
- httpwebrequest保持连接问题
- 调试网站Web.config出现问题,请求解决
- XML数据的读取
- 怎么实现网站首页题目自动截取一定长度?(在线等)
- 怎样控制用户在textbox中输入字符的长度?
- 跪求解决Win7下SaveFileDialog初始路径!
- 高分求临近算法
- 我如何将前台生成XML结构,传到后台脚本处理!!!C#实现Web应用程序!!!
- 关于如"记事本"!
- System.Web.Mail类的SmtpMail提示类没有注册,怎么解决????(不够加分)
- 如何将SqlDataReader转换为SqlDataAdapter?(在线等,急)
- 会者不难...............请转换一下,保持算法不变,谢谢了
这多代码,并且没有Main()方法,怎么帮你看
F10 + F11
这么多代码贴出来没有意义,建议楼主设置断点,单步调试,带参数的SQL语句,先看各个参数的值对不对(类型、大小等),然后再到数据库中执行最终形成的SQL语句。根据经验,一般都是由于以上这两个原因引起插入失败!