2016-02-16 176 views
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 
+0

首先要檢查的是用戶名/密碼是否在自己的工作 - 執行存儲過程,看看會發生什麼。 – Dave

+0

由於您試圖將用戶輸入的內容與數據庫中的哈希值相匹配,因此密碼可能不匹配。 – Duston

+0

通過放置一個斷點來檢查輸入,以便知道文本框返回的內容,然後檢查數據庫是否真的與字母匹配,一個好的檢查就是做另一個方法,嘗試將登錄/密碼在您的文本框中的第一個組合 –

回答

0

我發現了什麼導致登錄失敗,這是在表中註冊列名的用戶,它與框架中的系統用戶名衝突,我更改爲用戶名,現在工作正常。

相關問題