登錄Sql Server及參數
阿新 • • 發佈:2017-10-13
.text 使用 object類 整合 登錄 div span 轉換 變量
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;
註:將密碼參數的類型設為變長字符串;
用戶登錄:
如圖,建立一個登錄窗體
連接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方法來表明用戶名和密碼是否正確。登錄Sql Server及參數