我有一个存储过程
ALTER PROCEDURE dbo.Edu_Login
(
@mUserName nvarchar,
@mPwd nvarchar,
@FunctionName nvarchar
)
AS
if(@FunctionName='CheckUser')
BEGIN
update 用户信息表
set 最近登录时间=getdate()
where 用户名=@mUserName and 密码=@mPwd
END
RETURN
/////////////////////////////////
逻辑层是
mCommand.Connection.Open();
mCommand.ClearParameters();
mCommand.StoreProdureName = "Edu_Login";
mCommand.AddParameters("@FunctionName", "CheckUser");
mCommand.AddParameters("@mUserName", aUserName);
mCommand.AddParameters("@mPwd", aPassword); if (mCommand.ExecuteNonQuery() > 0)
{
mCommand.Connection.Close();
return true;
}
else
{
mCommand.Connection.Close();
return false;
}
//////////////////////
底层是
public DataTable ExecuteDataTable()
{
DataTable result; SqlDataAdapter dataAdapter = null;
try
{
dataAdapter = new SqlDataAdapter();
dataAdapter.SelectCommand = mCommand;
result = new DataTable();
dataAdapter.Fill(result);
}
catch (SqlException e)
{
throw (e);
}
finally
{
dataAdapter.Dispose();
}
return result;
}
当调试的时候 mCommand.ExecuteNonQuery() 的返回值 始终是-1 这是为什么呀????
但如果用 这样执行
string aStr = "update 用户信息表 set 最近登录时间=getdate() where 用户名='" + aUserName + "' and 密码='" + aPassword + "' ";
SqlCommand newCom = new SqlCommand(aStr, mCommand.Connection);
却好使 这是为什么呀??????????????
ALTER PROCEDURE dbo.Edu_Login
(
@mUserName nvarchar,
@mPwd nvarchar,
@FunctionName nvarchar
)
AS
if(@FunctionName='CheckUser')
BEGIN
update 用户信息表
set 最近登录时间=getdate()
where 用户名=@mUserName and 密码=@mPwd
END
RETURN
/////////////////////////////////
逻辑层是
mCommand.Connection.Open();
mCommand.ClearParameters();
mCommand.StoreProdureName = "Edu_Login";
mCommand.AddParameters("@FunctionName", "CheckUser");
mCommand.AddParameters("@mUserName", aUserName);
mCommand.AddParameters("@mPwd", aPassword); if (mCommand.ExecuteNonQuery() > 0)
{
mCommand.Connection.Close();
return true;
}
else
{
mCommand.Connection.Close();
return false;
}
//////////////////////
底层是
public DataTable ExecuteDataTable()
{
DataTable result; SqlDataAdapter dataAdapter = null;
try
{
dataAdapter = new SqlDataAdapter();
dataAdapter.SelectCommand = mCommand;
result = new DataTable();
dataAdapter.Fill(result);
}
catch (SqlException e)
{
throw (e);
}
finally
{
dataAdapter.Dispose();
}
return result;
}
当调试的时候 mCommand.ExecuteNonQuery() 的返回值 始终是-1 这是为什么呀????
但如果用 这样执行
string aStr = "update 用户信息表 set 最近登录时间=getdate() where 用户名='" + aUserName + "' and 密码='" + aPassword + "' ";
SqlCommand newCom = new SqlCommand(aStr, mCommand.Connection);
却好使 这是为什么呀??????????????
@mPwd nvarchar,
@FunctionName nvarchar 没有定义长度,比如改成如下:@mUserName nvarchar(50),
@mPwd nvarchar(50),
@FunctionName nvarchar(50)这看你的定义字段的长度了。