我正在嘗試爲Web應用程序的管理員開發一個簡單的用戶管理系統。我正在使用ASP.NET嚮導控制執行此任務。 我只是把一個TextBox寫入用戶名,當管理員點擊Next按鈕時,系統應該檢查用戶名是否存在於數據庫中。如果存在,系統應該在管理員的佔位符中顯示他的信息。如何在嚮導中檢查他的用戶名後檢索佔位符中的用戶信息?
我正在努力完成這項任務。我沒有在後臺代碼如下:
protected void Page_Load(object sender, EventArgs e)
{
//Session["Username"] = Username.Text;
string connString = "Data Source=localhost\\sqlexpress;Initial Catalog=testdb;Integrated Security=True";
string cmdText = "SELECT * FROM employee WHERE Username = @Username";
//For checking the user
if (Request.QueryString["Username"] != null)
{
String strUserName = Request.QueryString["Username"];
////Check userName Here
//String strReturnStatus = "false";
if (CheckUsername(Request.QueryString["Username"]) == true)
{
//strReturnStatus = "true";
try
{
SqlConnection conn = new SqlConnection(connString);
conn.Open();
SqlDataReader myReader = null;
SqlCommand myCommand = new SqlCommand(cmdText, conn);
myReader = myCommand.ExecuteReader();
while (myReader.Read())
{
Console.WriteLine(myReader["Name"].ToString());
Console.WriteLine(myReader["Job"].ToString());
}
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
}
}
//Response.Clear();
//Response.Write(strReturnStatus);
//Response.End();
}
}
private bool CheckUsername(string username)
{
string connString = "Data Source=localhost\\sqlexpress;Initial Catalog=testdb;Integrated Security=True";
string cmdText = "SELECT * FROM employee WHERE Username = '" + username + "'";
using(SqlConnection conn = new SqlConnection(connString))
{
conn.Open(); // Open DB connection.
using (SqlCommand cmd = new SqlCommand(cmdText, conn))
{
int count = (int)cmd.ExecuteScalar();
// True (> 0) when the username exists, false (= 0) when the username does not exist.
return (count > 0);
}
}
}
我試着寫在文本框中任何用戶名來測試這一點,但是當我點擊了應該重定向嚮導的下一個按鈕,我沒有得到任何結果我到佔位符或任何應該顯示用戶信息的控件。我現在想要的只是顯示用戶的信息,如果他的用戶名存在於數據庫中的話。怎麼做?
首先看看http://msdn.microsoft.com/en-us/magazine/cc163894.aspx。如果它是一個互聯網項目,那麼請閱讀sql注入。 – Asken
您是否使用Request.QueryString [「Username」]傳遞給此頁面的用戶名CheckUsername()函數返回true? – Waqas