62,268
社区成员
发帖
与我相关
我的任务
分享public partial class MainPage : System.Web.UI.Page
{
private SqlConnection conn = new SqlConnection("Integrated Security= true;Initial Catalog=RoadsideMart;Data Source=huyufeng;");
protected void Page_Load(object sender, EventArgs e)
{
if (conn.State == ConnectionState.Closed)
conn.Open();
}
protected void CustomValidator1_ServerValidate(object source, ServerValidateEventArgs args)
{
if (conn.State == ConnectionState.Closed)
conn.Open();
string sqlStr = "exec sp_validateUser ";
sqlStr += Username.Text + ", \'" + Password.Text + "\'";
SqlCommand cmd = new SqlCommand(sqlStr, conn);
int rtValue = (int)cmd.ExecuteScalar();
if (rtValue == 1)
{
Server.Transfer("Default2.aspx");
}
}
}Create procedure sp_validateUser
@userId int,
@inputPassword varchar(6)
AS
begin
declare @userIdChar varchar(30)
set @userIdChar = @userId
declare @rtValue int
if( @userIdChar = '')
set @rtValue = 0
else
begin
select @rtValue = 1 from Customer where ID = @userIdChar AND password = @inputPassword
if (@rtValue <> 1)
set @rtValue = 0
end
return @rtValue
end
//第二点,你应该是点按钮时进行登陆,可你现在把方法竟然写在自定义验证控件的后台方法中。。。
--且不说别的,你的程序里面调用存储过程用的方法是返回首行首列,那么你的存储过程就不能像现在这样写:
Create procedure sp_validateUser
@userId int,
@inputPassword varchar(6)
AS
begin
declare @userIdChar varchar(30)
set @userIdChar = @userId
declare @rtValue int
if( @userIdChar = '')
set @rtValue = 0
else
begin
select @rtValue = 1 from Customer where ID = @userIdChar AND password = @inputPassword
if (@rtValue <> 1)
set @rtValue = 0
end
select @rtValue --这里应该改成这样``
end