標籤:style blog io color os ar 使用 sp 資料
Command對象建立SQl語句程式碼範例
說明:前面介紹了 Command 對象的方法和一些屬性,回顧一下 Command對象主要用來執行SQL語句。利用Command對象,可以查詢資料和修改資料。
在下面這段代碼裡,首先根據連接字串建立一個SqlConnecdon連線物件,並用此對象串連資料來源:然後建立一個SqlCommand對象,並用此對象的ExecuteNonQuery方法執行不帶返回結果集的SQL語句。
1 //連接字串 2 3 private static string strConnect=" data source=localhost;database=LOGINDB;uid=sa;pwd=aspent;"
6 7 // 根據連接字串建立SqlConnection 串連控制代碼 8 9 SqlConnetion objConnection =new SqlConnection(strConnect);10 11 //資料庫命令12 13 SqlCommand objCommand =new SqlCommand( " ",objConnection);14 15 // 設定sql語句16 17 objCommand.CommandText= " INSERT INTO USERS " + " (USERNAME, NICKNAME, USERPASSWORD, USEREMAIL, USERROLE, CREATDATE, LASTMODIFYDATE) "+ " VALUES " +" (@USERNAME, @NICKNAME, @USERPASSWORD, @USEREMAIL, @USERROLE, @CREATDATE, @LASTMODIFYDATE ) ";18 19 // 以下省略設定各值的語句20 21 ……22 23 try24 25 {26 27 //開啟資料庫連接28 29 if( objConnection.State == ConnectionState. Closed )30 31 {32 33 objConnection.Open();34 35 }36 37 //擷取運行結果,插入資料38 39 objCommand.ExecuteNonQuery();40 41 //省略後繼動作42 43 ……44 45 }46 47 catch(SqlException e)48 49 {50 51 Response.Write(e.Message.ToString());52 53 }54 55 finally56 57 {58 59 //關閉資料庫連接60 61 if(objConnection.State == ConnectionState.Open)62 63 {64 65 objConnection.Close();66 67 }68 69 }
這段代碼是串連資料庫並執行操作的典型代碼。
其中,操作資料庫的代碼均在try… catch … finally結構中,因此代碼不僅能正常地操作資料庫,更能在發生異常的情況下拋出異常。
另外,不論是否發生異常,也不論發生了哪種資料庫操作的異常,finally塊裡的代碼均會被執行,
所以,一定能保證代碼在訪問資料庫後關閉串連。
而在下面的代碼裡,將使用Command對象執行查詢類的SQL語句,並將結果集賦給DataRead對象。
private static string strConnect=" data source=localhost;uid=sa;pwd=aspent;database=LOGINDB"SqlConnetion objConnection =new SqlConnection(strConnect);SqlCommand objCommand =new SqlCommand( " ",objConnection);// 設定sql語句objCommand.CommandText= "SELECT * FROM USERS ";try{//開啟資料庫連接if( objConnection.State == ConnectionState. Closed )objConnection.Open();//擷取運行結果SqlDataReader result=objCommand.ExecuteReader();//省略後繼動作……}catch(SqlException e){Response.Write(e.Message.ToString());}finally{//關閉資料庫連接if(objConnection.State == ConnectionState.Open){objConnection.Close();}}
這裡用到DataReader對象來獲得結果集,如果僅僅想返回查詢結果集的第一行第一列的值,可以將SqlDataReader result=objCommand.ExecuteReader();改成objCommand.ExecuteScalar().ToString();
C#與資料庫訪問技術總結(六)之Command對象建立SQl語句程式碼範例