資料庫命令的應用

幾何魔君阿基米德發表於2017-11-02

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();                                              //密碼文字框內所有文字被選中;
            }

引數傳遞

異常處理


相關文章