在将 varchar 值 'ESTOP' 转换成数据类型 int 时失败。
各位达人帮忙看一下,问题到底出在哪里?
public bool LoginValidate(string name, string password)
{
LoginConnection = new SqlConnection(ConfigurationSettings.AppSettings["connectionString"]);
LoginCommand = new SqlCommand("sp_UserValidate", LoginConnection);
LoginCommand.CommandType = CommandType.StoredProcedure;
SqlParameter parmLoginName = new SqlParameter("@uName", SqlDbType.VarChar, 50);
parmLoginName.Value = name;
LoginCommand.Parameters.Add(parmLoginName);
SqlParameter parmLoginPassword = new SqlParameter("@uPWD", SqlDbType.VarChar, 50);
parmLoginPassword.Value = password;
LoginCommand.Parameters.Add(parmLoginPassword);
SqlParameter parmResult = new SqlParameter("@result",SqlDbType.VarChar,20);
parmResult.Direction = ParameterDirection.Output;
LoginCommand.Parameters.Add(parmResult);
try
{
LoginConnection.Open();
LoginCommand.ExecuteNonQuery();
LoginConnection.Close();
if (parmResult.Value.ToString() == "ACCESS")
{
return true;
}
else
{
return false;
}
}
catch (Exception ex)
{
throw (ex);
}
}
____________________________________________________________________________________________________________
USE [liyuankun]
GO
/****** 对象: StoredProcedure [dbo].[sp_UserValidate] 脚本日期: 08/26/2008 21:23:04 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER procedure [dbo].[sp_UserValidate]
(
@uName varchar(50),
@uPWD varchar(50),
@result varchar(20) output
)
as
select LoginName,LoginPassword from tabUser where LoginName=@uName and LoginPassword=@uPWD
if (@@rowcount < 1)
begin
set @result = 'ESTOP';
end
else
begin
set @result = 'ACCESS';
end
return @result;