1. 程式人生 > >登錄Sql Server及參數

登錄Sql Server及參數

.text 使用 object類 整合 登錄 div span 轉換 變量

用戶登錄:

如圖,建立一個登錄窗體

技術分享

連接SQLServer;

利用SqlCommand類的構造方法創建SqlCommand對象用於執行具體的SQL語句,如修改、更新、刪除等。步驟如下:

1、創建SqlCommand對象:

SqlCommand sqlcommand=new SqlCommand();

2、將sqlcommand.Connection連上已創建的sqlconnection:

sqlcommand.Connection = sqlConnection;

3、 定義SQL語句,指定SQL命令的命令文本;命令文本由字符串拼接而成:

sqlCommand.CommandText = ?"SELECT COUNT(1) FROM tb_User"

+ " WHERE No=‘" + this.txb_UserNo.Text.Trim() + "‘"

+ " AND Password=HASHBYTES(‘MD5‘,‘" + this.txb_Password.Text.Trim() + "‘);";

" + this.txb_UserNo.Text.Trim() + "是將文本框的文本清除首尾的空格後,拼接至命令文本中; ‘’ 因為文本內容為字符類型,因而要加上單引號。

4、 采用SqlConnection的ExecuteScalar方法來表明用戶名和密碼是否正確。
ExecuteScalr:執行查詢並返回結果中第一行第一列的指,其值為object類型。 打開連接,並定義一個整型變量rowCount,來存放object類型強制轉換的值。 int rowCount = (int)sqlCommand.ExecuteScalar(); 如果rowCount=1,則登錄成功,若為0,則不存在該用戶,登錄失敗。 整合代碼如下:技術分享 參數: "SELECT COUNT(1) FROM tb_User" + " WHERE No=‘" + this.txb_UserNo.Text.Trim() + "‘"
+ " AND Password=HASHBYTES(‘MD5‘,‘" + this.txb_Password.Text.Trim() + "‘);"; 密碼有可能被篡改。 使用參數可以解決該問題,將SQL語句改為: "SELECT COUNT(1) FROM tb_User WHERE [email protected] AND Password=HASHBYTES(‘MD5‘,@Password);"; 註:指定SQL命令的命令文本,命令文本包含參數; sqlCommand.Parameters.AddWithValue("@No", this.txb_UserNo.Text.Trim()); sqlCommand.Parameters.AddWithValue("@Password", this.txb_Password.Text.Trim()); 註:向SQL命令的參數集合添加參數的名稱、值; sqlCommand.Parameters["@Password"].SqlDbType = SqlDbType.VarChar; 註:將密碼參數的類型設為變長字符串;

登錄Sql Server及參數