C#与数据库访问技术总结(六)之Command对象创建SQl语句代码示例

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(); 

 

posted @ 2014-11-01 14:30  [0]  阅读(852)  评论(0编辑  收藏  举报