iT邦幫忙

2024 iThome 鐵人賽

DAY 23
0

我們在一般的web上,如果我們要使用網站上的功能一班都要先註冊一組帳號密碼,在這個案例中我們在View其實只需要一個form表單填入帳號密碼就可以了,那我們可以先來構建Controller中的程式邏輯:

前往註冊頁面->輸入帳號密碼->與資料庫連接->檢查資料庫中是否有這組帳號->若沒有則在資料庫中寫入這組帳號密碼
View

@{
    ViewBag.Title = "Register";
}

<h2>Register</h2>
<form action="@Url.Action("Doregister", "Home")" method="post">
    <div class="form-group">
        <label for="Account">Account</label>
        <!--帳號輸入框-->
        <input type="text" class="form-control" id="Account" name="Account" placeholder="Enter your account" required />
    </div>
<!--密碼輸入框-->
    <div class="form-group">
        <label for="Password">Password</label>
        
        <input type="password" class="form-control" id="Password" name="Password" placeholder="Enter your password" required />
    </div>

    <button type="submit" class="btn btn-primary">Register</button>
</form>
<div style="color: red; margin-top: 10px;">@TempData["Errmsg"]</div>
                </div>

Controller

//需要兩個參數:帳號、密碼
public ActionResult Doregister(string Account,string Password)
{
//資料庫連接字串
    string connstr = "Data Source=CSIE-TEST2;Initial Catalog=Student_data;User ID=TEST03;Password=1qaz@WSX;Encrypt=False";
    SqlConnection conn = new SqlConnection(connstr);
    conn.Open();
    //抓取帳號欄位,條件設置為如果有某筆資料的帳號=輸入的帳號
    SqlCommand cmd = new SqlCommand("select Account from Login where Account=@Account");
    cmd.Connection = conn;
    cmd.Parameters.AddWithValue("@Account", Account);
    SqlDataAdapter adpt = new SqlDataAdapter();
    DataSet ds = new DataSet();
    adpt.SelectCommand = cmd;
    adpt.Fill(ds);
//如果有有資料則代表帳號有人使用過了
    if (ds.Tables[0].Rows.Count > 0)
    {
        TempData["Errmsg"] = "帳號已存在";
        return RedirectToAction("Register");
    }
    //若沒有則創建這組帳號密碼
    else
    {
    //在資料庫中INSERT這組帳號密碼
        SqlCommand ins = new SqlCommand("INSERT INTO Login (Account, Password) VALUES (@Account, @Password)");
        ins.Parameters.AddWithValue("@Account", Account);
        ins.Parameters.AddWithValue("@Password",Password);
        ins.Connection = conn;
        ins.ExecuteNonQuery();

    }
    return RedirectToAction("login");

}

總結:在註冊案例中其實有很多種寫法,但主要看要怎麼設計之後決定怎麼寫,再次案例中屬於比較簡單的演示,也可以自行改編成先輸入帳號查詢,若沒有註冊過再輸入密碼等寫法,不同的設計寫法都不相同,單基礎的語法與手法都相同。


上一篇
DAY 22 實作案例_技術總結
下一篇
DAY 24 實作案例_註冊的程式碼詳解
系列文
從零開始使用Microsoft MVC架構來搭建web server30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言