SQL命令 SqlCommand
SqlCommand負責完成對資料庫的查詢、新增、刪除和修改等各種操作。
SqlCommand物件的建立
SqlCommand sqlcom = new SqlCommand()
sqlCom.Connection = sqlConn; //再將SQL命令的屬性Connection指向SQL連線
或
SqlCommand sqlCom = new SqlCommand(命令字串,連線物件名);
SqlCommand物件的三種常用的命令格式:
1)sqlcom.ExecuteReader 返回一個reader物件
2)sqlcom.ExecuteNonQuery 返回一個整數,通常用在插入、刪除、更新時受影響的行數
3)sqlcom.ExecuteScalar 返回檢索的一個值,通常用於查詢聚合函式
ExecuteNonQuery方法
對連線執行 Transact-SQL 語句並返回受影響的行數。常用於對資料庫的新增、刪除和修改等各種操作。
private void btn_LogIn_Click(object sender, EventArgs e)
{
SqlConnection sqlConnection = new SqlConnection(); //宣告並例項化SQL連線;
sqlConnection.ConnectionString =
"Server=(local);Database=EduBaseDemo;Integrated Security=sspi"; //在字串變數中,描述連線字串所需的伺服器地址、資料庫名稱、整合安全性(即是否使用Windows驗證);
SqlCommand sqlCommand = new SqlCommand(); //宣告並例項化SQL命令;
sqlCommand.Connection = sqlConnection; //將SQL命令的屬性Connection指向SQL連線;
sqlCommand.CommandText = //指定SQL命令的命令文字;
"delete from tb_User where No=`3140707001`; ";
sqlConnection.Open(); //開啟SQL連線;
if (sqlcmd.ExecuteNonQuery() > 0) MessageBox.Show("記錄已刪除!");
else MessageBox.Show("未找到相關記錄!");
sqlConnection.Close(); //關閉SQL連線;
##### ExecuteScalar方法
對連線執行 Transact-SQL 語句並返回一個值。常用於返回COUNT(*)、SUM()、AVG()等聚合函式的值。
SqlConnection sqlConnection = new SqlConnection(); //宣告並例項化SQL連線;
sqlConnection.ConnectionString =
"Server=(local);Database=EduBaseDemo;Integrated Security=sspi"; //在字串變數中,描述連線字串所需的伺服器地址、資料庫名稱、整合安全性(即是否使用Windows驗證);
SqlCommand sqlCommand = new SqlCommand(); //宣告並例項化SQL命令;
sqlCommand.Connection = sqlConnection; //將SQL命令的屬性Connection指向SQL連線;
sqlCommand.CommandText = //指定SQL命令的命令文字;命令文字由字串拼接而成;
"SELECT COUNT(1) FROM tb_User"
+ " WHERE No=`" + this.txb_UserNo.Text.Trim() + "`" //將文字框的文字清除首尾的空格後,拼接至命令文字中;
+ " AND Password=HASHBYTES(`MD5`,`" + this.txb_Password.Text.Trim() + "`);";
sqlConnection.Open(); //開啟SQL連線;
int rowCount = (int)sqlCommand.ExecuteScalar(); //呼叫SQL命令的方法ExecuteScalar來執行命令,並接受單個結果(即標量);
//執行標量的返回結果型別為object,可通過強制型別轉換,轉為整型;
MessageBox.Show(sqlCommand.CommandText);
sqlConnection.Close(); //關閉SQL連線;
if (rowCount == 1) //若查得所輸使用者號相應的1行記錄;
{
MessageBox.Show("登入成功。"); //給出正確提示;
}
else //否則;
{
MessageBox.Show("使用者號/密碼有誤,請重新輸入!"); //給出錯誤提示;
this.txb_Password.Focus(); //密碼文字框獲得焦點;
this.txb_Password.SelectAll(); //密碼文字框內所有文字被選中;
}