写了个存储过程,向两个表插入数据,已测试通过...
但是在程序中执行这个存储过程时出错,程序如下:
public int AddUserByPro(string sUserName, string sPassword, int nRole, string sEmailAddress, string s_PhoneNumber, int nRegionID, string sCusName)
{
SqlConnection myConnection = new SqlConnection(
ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString);
SqlCommand myCommand = myConnection.CreateCommand();//创建command
myCommand.CommandType = CommandType.StoredProcedure;//指定执行存储过程操作
myCommand.CommandText = "AddUser";//存储过程名称
////往存储过程中添加参数
myCommand.Parameters.Add("@UserName", SqlDbType.VarChar);
myCommand.Parameters.Add("@Password", SqlDbType.VarChar);
myCommand.Parameters.Add("@PhoneNumber", SqlDbType.VarChar);
myCommand.Parameters.Add("@CustomerName", SqlDbType.VarChar);
////给存储过程的参数赋值
myCommand.Parameters["@UserName"].Value = sUserName;
myCommand.Parameters["@Password"].Value = sPassword;
myCommand.Parameters["@Email"].Value = sEmailAddress;
myCommand.Parameters["@PhoneNumber"].Value = s_PhoneNumber;
myCommand.Parameters["@CustomerName"].Value = sCusName;
//定义返回值
int nResult = -1;
try
{
myConnection.Open();
//执行存储过程
nResult = myCommand.ExecuteNonQuery();
}
catch (SqlException ex)
{
throw new Exception(ex.Message, ex);
}
finally
{
myConnection.Close();
}
return nResult;
}
nResult = myCommand.ExecuteNonQuery();这句话报错“Failed to convert parameter value from a String to a Int32.” 为什么呢?
请教各位,存储过程处理多表的话程序中应该怎么写呢?
myCommand.Parameters.Add("@PhoneNumber", SqlDbType.VarChar);
@phonenumber 这个参数 在存储过程中是什么 数据类型?
varchar
@stone Jin: 那看看存储过程代码吧
myCommand.Parameters["@Email"].Value = sEmailAddress;
这个@Email是什么东西?
这是我删代码是忘删了,这些都没问题,问题根本不在参数上啊,问题在与nResult = myCommand.ExecuteNonQuery();的报错啊,我感觉是因为涉及到两个表,所以myCommand.ExecuteNonQuery();迷茫了...
请问你存储过程返回值是什么类型的?