C#与数据库访问技术总结(六)之Command对象创建SQl语句代码示例
时间:2022-03-14 01:50
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();