WebForm登入頁面(連線資料庫)

李_lym發表於2018-07-13

登入頁面:

當使用者名稱密碼輸入正確,點選確定可以跳轉到下一個頁面

 


我們需要先引入名稱空間:

using System.Data;
using System.Data.SqlClient;
using System.Data.Sql;

頁面程式碼:

           
            string name = TextBox1.Text.Trim();//獲取到文字框中的使用者名稱
            string pwd = TextBox2.Text;//獲取到文字框中的密碼
            //連線資料庫欄位
            string sqlcoon = "Data Source=.;Initial Catalog=logis;Integrated Security=True";
            string sql = string.Format("select count(*) from User1 where Account=@Account and Password=@Password_");//查詢是否有該條記錄,根據賬戶密碼
            SqlParameter[] par = {
                new SqlParameter("@Account",name),
                   new SqlParameter("@Password_",pwd)

            };
            using (SqlConnection con = new SqlConnection(sqlcoon))//SqlConnection連線,用using釋放連線

            {
                using (SqlCommand com = new SqlCommand(sql, con))//SqlCommand連線,用using釋放連線

                {
                    com.Parameters.AddRange(par);
                    //開啟連線
                    con.Open();

                    int resert = Convert.ToInt32(com.ExecuteScalar());
                    //關閉連線
                    //con.Close();
                    //釋放連線
                    // con.Dispose();
                    if (resert > 0)
                    {

                        Response.Redirect("開票介面.aspx");
                    }
                    else
                    {
                        Label1.Text = "賬戶名或密碼錯誤!";

                    }
                }
            } 

知識點:

1.連線資料庫欄位

//連線資料庫欄位
            string sqlcoon = "Data Source=.;Initial Catalog=logis;Integrated Security=True";

連線資料庫欄位是根據自己的資料庫連線來寫的。其中server表示執行Sql Server的計算機名,由於程式和資料庫系統是位於同一臺計算機的,所以我們可以用.(或localhost)取代當前的計算機名。Date Source表示所使用的資料庫名(logis)。integrated security=true 的意思是整合驗證,也就是說使用Windows驗證的方式去連線到資料庫伺服器。這樣方式的好處是不需要在連線字串中編寫使用者名稱和密碼,從一定程度上說提高了安全性。

2.查詢語句

 string sql = string.Format("select count(*) from User1 where Account=@Account and Password=@Password_");

這樣寫資料庫是為了防止惡意攻擊資料庫。

3.SqlParameter

  SqlParameter[] par = {
                new SqlParameter("@Account",name),
                   new SqlParameter("@Password_",pwd)

            };

SqlParameter物件在C#中獲取儲存過程的返回值。利用Add方法和AddRange方法來使用。

4.使用using釋放資源
例如:Using(){}
using釋放的是非託管資源

close()只是關閉連線,但是通道沒有銷燬,dispose()不僅把連線給關閉了,而且把通道也給銷燬了。

可以用using來代替dispose()

5.ExecuteScalar

SqlCommand物件的三種方法:

(1)判斷增刪改的ExcuteNonQUery()方法,會在增刪改成功之後返回數字 

(2)讀取sql查詢語句的內容使用SqlDataReader()方法

(3)SqlCommand.ExecuteScalar()方法的作用就是

執行查詢,並返回查詢所返回的結果集中第一行的第一列。忽略其他行或列,返回值為object型別





相關文章