C#與資料庫訪問技術總結(六)之Command物件建立SQl語句程式碼示例

[0]發表於2014-11-01

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 try
24 
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 finally
56 
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(); 

 

相關文章