1
我有一個用戶名和密碼控制登錄頁面。當我點擊登錄按鈕時,腳本用存儲過程(LoginCheck)檢查數據庫表(註冊表)中用戶和密碼的可用性,但是當我輸入數據時它永遠不會成功,它總是失敗。登錄頁面不成功
下面是代碼腳本:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Configuration;
using System.Data.SqlClient;
public partial class Login : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void LoginBtn_Click(object sender, EventArgs e)
{
DataTable dt= new DataTable();
SqlDataAdapter adp = new SqlDataAdapter();
SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["Mydatabase"].ConnectionString);
try
{
SqlCommand cmd = new SqlCommand("LoginCheck", conn);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@User", TextUsr.Text.Trim().ToString());
cmd.Parameters.AddWithValue("@Password", TextPass.Text.Trim().ToString());
adp.SelectCommand = cmd;
adp.Fill(dt);
cmd.Dispose();
if (dt.Rows.Count > 0)
{
lblStatus.Text = "Login Successfully" + dt.Rows.Count.ToString();
clearcontrols();
}
else
{
lblStatus.Text = "Wrong username of password "+dt.Rows.Count.ToString();
}
}
catch (Exception ex)
{
lblStatus.Text = ex.Message.ToString();
}
finally
{
// reader.Close();
dt.Clear();
dt.Dispose();
adp.Dispose();
conn.Close();
}
}
private void clearcontrols()
{
TextUsr.Text = "";
TextPass.Text = "";
}
}
下面是存儲過程:
CREATE PROCEDURE LoginCheck
@User nvarchar(50),
@Password nvarchar(50)
AS
BEGIN
Select * from Register where [email protected] and [email protected]
END
首先要檢查的是用戶名/密碼是否在自己的工作 - 執行存儲過程,看看會發生什麼。 – Dave
由於您試圖將用戶輸入的內容與數據庫中的哈希值相匹配,因此密碼可能不匹配。 – Duston
通過放置一個斷點來檢查輸入,以便知道文本框返回的內容,然後檢查數據庫是否真的與字母匹配,一個好的檢查就是做另一個方法,嘗試將登錄/密碼在您的文本框中的第一個組合 –