存储过程的问题?
在类中有一个方法:
public void newUser(string UserName,string Password,int Sex,DateTime Birthday,string Memo,int Usertype)
{
oleConn=new clsConnect();
conn=oleConn.Open();
strSql="newUser";
cmd=new OleDbCommand(strSql,conn);
cmd.Parameters.Add(new OleDbParameter("@strUser",OleDbType.VarChar,30));
cmd.Parameters["@strUser"].Value=UserName;
cmd.Parameters.Add(new OleDbParameter("@strPas",OleDbType.VarChar,30));
cmd.Parameters["@strPas"].Value=Password;
cmd.Parameters.Add(new OleDbParameter("@strSex",OleDbType.BigInt));
cmd.Parameters["@strSex"].Value=Sex;
cmd.Parameters.Add(new OleDbParameter("@strBirthday",OleDbType.Date));
cmd.Parameters["@strBirthday"].Value=Birthday;
cmd.Parameters.Add(new OleDbParameter("@strMemo",OleDbType.LongVarChar));
cmd.Parameters["@strMemo"].Value=Memo;
cmd.Parameters.Add(new OleDbParameter("@strType",OleDbType.BigInt));
cmd.Parameters["@strType"].Value=Usertype;
cmd.CommandType=CommandType.StoredProcedure;
try
{
cmd.ExecuteNonQuery();
cmd.Dispose();
oleConn.Close();
}
catch(Exception er)
{
er.ToString();
}
}
存储过程newUser:
ALTER PROCEDURE dbo.newUser
/*
(
@parameter1 datatype = default value,
@parameter2 datatype OUTPUT
)
*/
@strUser varchar(30),
@strPas varchar(30),
@strSex bigint,
@strBirthday datetime,
@strMemo ntext,
@strType bigint,
@strAddTime datetime=getdate
AS
/* SET NOCOUNT ON */
insert into tblUser (UserName,Password,Sex,Birthday,Memo,Usertype,AddTime)values(@strUser,@strPas,@strSex,@strBirthday,@strMemo,@strType,@strAddTime)
RETURN
-------------------------------------
为什么在执行的时候,存储过程报错:
运行dbo."newUser" ( @strUser = lxx, @strPas = 1234456, @strSex = 1, @strBirthday = 1979-06-21, @strMemo = dsadsafdsa, @strType = 0, @strAddTime = <DEFAULT> ).
从字符串转换为 datetime 时发生语法错误。
没有行受影响。
(返回 0 行)
@RETURN_VALUE =
完成 dbo."newUser" 运行。