1 class DBHandler {
2
3 //SqlConnection数据库连接对象
4 private SqlConnection localConnection = null;
5
6 //构造函数中初始化连接对象,传入数据库服务名,数据库实例名,用户名和密码
7 public DBHandler(string server, string dataBase, string id, string pwd) {
8 String connectionString = "Data Source=" + server + ";Initial Catalog=" + dataBase
9 + ";User ID=" + id + ";Password=" + pwd;
10 this.localConnection = new SqlConnection(connectionString);
11 }
12
13 //创建对象后调用该方法判断是否能够成功连接
14 public int checkValidate(ref string errMsg) {
15 try {
16 this.localConnection.Open();
17 } catch (Exception ex) {
18 errMsg = "[Connecting failed]" + ex.Message;
19 return -1;
20 }
21 return 0;
22 }
23
24 //操作数据库前调用
25 private void prepareConnect() {
26 switch (this.localConnection.State) {
27 case ConnectionState.Broken:
28 this.localConnection.Close(); //先正常关闭,释放资源
29 this.localConnection.Open();
30 break;
31 case ConnectionState.Closed:
32 this.localConnection.Open();
33 break;
34 case ConnectionState.Connecting:
35 break;
36 case ConnectionState.Executing:
37 break;
38 case ConnectionState.Fetching:
39 break;
40 case ConnectionState.Open:
41 break;
42 default:
43 break;
44 }
45 }
46
47 //执行Update语句,返回更新的行数
48 public int doUpdate(string sql, ref string errMsg) {
49 prepareConnect();
50 SqlCommand localCommand = new SqlCommand();
51 localCommand.CommandText = sql;
52 localCommand.Connection = this.localConnection;
53 try {
54 return localCommand.ExecuteNonQuery();
55 } catch (Exception ex) {
56 errMsg = "[update error]" + ex.Message;
57 return -1;
58 }
59 }
60
61 //执行Select语句,返回DataTable结果集
62 public void doSelect(string sql, ref DataTable dataTable, ref string errMsg) {
63 prepareConnect();
64 try {
65 SqlDataAdapter dataAdapter = new SqlDataAdapter(sql, this.localConnection);
66 dataTable.Clear();
67 dataAdapter.Fill(dataTable);
68 } catch (Exception ex) {
69 errMsg = "[select error]" + ex.Message;
70 }
71 }
72
73 }
1 class DBHandler {
2
3 //SqlConnection数据库连接对