資源在這裏 :github源文件參考
先看一下截圖
支持的功能:
- 登錄成功的提示
- 登錄失敗的提示
- 賬號或者密碼錯了分開提示
- 註冊成功的提示
- 不能註冊已經在數據庫裏面的用戶ID
我在這裏看了很多這個人的教程:walking橙子 ,但是裏面有的東西我不能用,messagebox.show() 就不行。我也不是很懂(搜索也沒有搜到,不知道怎麼使用messagebox的我只能找一種替換的彈窗方式(當然也是來自百度)使用起來也很簡單,關鍵是能用。
推薦大家去看一下,我這裏不打算寫重複的東西,在源文件裏面我有很多的註釋,相信可以方便下載了源文件的人理解一點。
具體步驟
1.用SSMS建立一個數據庫,大概這樣
2.做好一個網頁,大概和頭圖那個類似就行了(看着比較經典但是外觀這裏不是重點)
3.拖一個下面這個控件,並且鏈接好數據庫文件/服務器。(這個也許比較困難,但是這個網上有很多的教程,還有各種問題的處理方法)
4.開始打關於那兩個按鈕的代碼
登錄按鈕:
先打一個SqlCommand之類的,會劃錯誤提示,使用vs的自動補齊功能,它可以幫助你補上using的東西
- 確認用戶沒有空着框子
- 和數據庫做對比
-
sqlconnection.open() 這裏的鏈接字符串可以在這邊找到(看圖 ↓)
-
sqlcommand.excute() (並傳遞給reader)注意new sqlcommand()裏面的參數
-
reader.read()
-
判斷reader.hasrows 來看看是否有這一個用戶和密碼是否正確。並且彈窗
-
關於用戶輸錯了什麼的判斷(個人感覺這個很重要)並且彈窗
-
-
protected void Button1_Click(object sender, EventArgs e)
{
if (TextBox1.Text == "")
{
Response.Write("<script>window.alert('沒有輸入用戶名');</script>");
return;
}
else if(TextBox2.Text == "")
{
Response.Write("<script>window.alert('沒有輸入密碼');</script>");
return;
}
SqlConnection conn = new SqlConnection("Data Source=(localdb)\\MSSQLLocalDB;Initial Catalog=login_webhw;Integrated Security=True");
// 這句話從sqldatasource控件裏面複製一個出來。
conn.Open();
SqlCommand cmd = new SqlCommand("SELECT *FROM logindb where userID = '" + TextBox1.Text.Trim() + "' and userPWD = '" + TextBox2.Text.Trim() + "'",conn);
// 這句話創建一個指令
SqlDataReader sdr = cmd.ExecuteReader();//指令傳給reader
Label1.Text=cmd.CommandText.ToString();//查看一下自己的查詢語句對不對,一會註釋掉
// 這句執行它
sdr.Read();
if (sdr.HasRows)
Response.Write("<script>window.alert('登錄成功');</script>");
else//最討厭的就是一個網頁告訴我用戶名或者密碼錯誤,但是不告訴我到底是哪個
{
sdr.Close();//這裏本來不知道要寫的,但是下面再次調用出現了小問題,就加上。最好用完就關掉
cmd.CommandText = "SELECT *FROM logindb where userID = '" + TextBox1.Text.Trim() +"'";
sdr = cmd.ExecuteReader();//指令傳給reader
if (sdr.HasRows)
Response.Write("<script>window.alert('密碼錯誤');</script>");
else
Response.Write("<script>window.alert('用戶名不存在');</script>");
sdr.Close();
}
conn.Close();
}
註冊按鈕:
- 主要的區別就在於使用的是插入的sql語句
- trim()函數是照着上一個帖子的寫的,感覺用處不大。
我在裏面放了一個淺色的label用來看看自己的語句有沒有錯誤,因爲一堆的引號還有加號真的很花眼。
protected void Button2_Click(object sender, EventArgs e)//註冊按鈕
{
if (TextBox1.Text == "")
{
Response.Write("<script>window.alert('沒有輸入用戶名');</script>");
return;
}
else if (TextBox2.Text == "")
{
Response.Write("<script>window.alert('沒有輸入密碼');</script>");
return;
}
SqlConnection conn = new SqlConnection("Data Source=(localdb)\\MSSQLLocalDB;Initial Catalog=login_webhw;Integrated Security=True");
conn.Open();
//先檢查有沒有已經存在了,這個用戶
SqlCommand cmd = new SqlCommand("SELECT *FROM logindb where userID = '" + TextBox1.Text.Trim() + "'", conn);
SqlDataReader sdr = cmd.ExecuteReader();
Label1.Text = cmd.CommandText.ToString();//查看一下自己的查詢語句對不對,一會註釋掉
sdr.Read();
if (sdr.HasRows)
Response.Write("<script>window.alert('用戶名已經存在,不可以重複註冊');</script>");
else//開始寫註冊的東東
{
sdr.Close();
cmd.CommandText = "insert into logindb (userID,userPWD) values ('"+TextBox1.Text+"','"+TextBox2.Text+"')";
string rows_effedted = cmd.ExecuteNonQuery().ToString();
Label1.Text = rows_effedted;
conn.Close();
conn.Dispose();//釋放conn所有的資源。
Response.Write("<script>window.alert('註冊成功,可以登錄了');</script>");
}
}
這樣就寫完了,我還是喜歡玩css的東西,很酷誒!
但是學校叫我做註冊和登錄,重點在於鏈接數據庫。
謝謝你的閱讀。
資源在這裏 :github源文件參考
我的個blog : https://kasusa.github.io 可以去博客裏和我email聯繫。樂於回答相關的小疑問。