7.使用ADO.NET实现(工厂模式-实现多数据库切换)(1)
7.1 解决方案框架
解决方案(.sln)包含以下几个项目:
(1)类库项目HomeShop.DbUtility,数据访问实用工具;
(2)类库项目HomeShop.Model,实体层;【同5】
(3)类库项目HomeShop.DALFactory,数据访问层工厂;
(4)类库项目HomeShop.DALInterface,数据访问层接口;
(5)类库项目HomeShop.DALOfSql,SQLServer数据访问层;
(6)类库项目HomeShop.DALOfAccess,Access数据访问层;
(4)类库项目HomeShop.BLL,业务逻辑层;
(5)WinForm项目HomeShop.WinForm,界面层。
7.2 数据访问实用工具HomeShop.DbUtility
SqlDbHelper.cs
View Code
1 using System;
2 using System.Collections.Generic;
3 using System.Linq;
4 using System.Text;
5 //新添命名空间
6 using System.Data;
7 using System.Configuration;
8 using System.Data.SqlClient;
9
10 namespace HomeShop.DbUtility
11 {
12 //功能:SQL Server数据访问基础类;
13 //作者:夏春涛;
14 //日期:2011-11-30;
15 public class SqlDbHelper
16 {
17 //数据库连接字符串
18 private string connectionString = "";
19 public string ConnectionString
20 {
21 get {return connectionString; }
22 }
23
24 //数据库连接对象
25 private SqlConnection connection;
26
27 //默认构造函数,从应用程序配置文件中读取第1个数据库连接字符串
28 public SqlDbHelper()
29 {
30 this.connectionString = ConfigurationManager.ConnectionStrings[1].ConnectionString;
31 this.connection = new SqlConnection(this.connectionString);
32 }
33
34 //重载构造函数,根据入参初始化数据库连接字符串
35 public SqlDbHelper(string connectionString)
36 {
37 this.connectionString = connectionString;
38 this.connection = new SqlConnection(this.connectionString);
39 }
40
41 //执行SQL命令(Select),获取返回数据
42 public DataTable ExecuteQuery(string selectCommandText, params SqlParameter[] cmdParameters)
43 {
44 SqlCommand command = new SqlCommand();
45 PrepareCommand(command, null, CommandType.Text, selectCommandText, cmdParameters);
46 SqlDataAdapter adapter = new SqlDataAdapter(command);
47 DataTable dataTable = new DataTable();
48 adapter.Fill(dataTable);
49 connection.Close();
50
51 return dataTable;
52 }
53
54 //执行多条SQL(Insert/Delete/Update),以数据库事务方式
55 public int ExecuteNonQueryTrans(List<SqlCmdTextAndParams> listCmdTextAndParams)
56 {
57 int rowsCountAffected = 0;
58 //开始数据库事务
59 SqlTransaction trans = BeginTransaction();
60 SqlCommand command = new SqlCommand();
61 try
62 {
63 //循环执行每一个CommandTextAndParameters对象
64 foreach (SqlCmdTextAndParams cmdTextAndParams in listCmdTextAndParams)
65 {
66 PrepareCommand(command, trans, CommandType.Text, cmdTextAndParams.CommandText, cmdTextAndParams.CommandParameters);
67 rowsCountAffected += command.ExecuteNonQuery();
68 //清空参数列表,避免参数重名问题
69 command.Parameters.Clear();
70 }
71 trans.Commit();//提交数据库事务
72 }
73 catch
74 {
75 trans.Rollback();//回滚数据库事务
76 throw;
77 }
78 connection.Close();
79
80 return rowsCountAffected;
81 }
82
83 //开始(生成)一个数据库事务
84 public SqlTransaction BeginTransaction()
85 {
86 if (connection.State != ConnectionState.Open)
87 connection.Open();
88 SqlTransaction trans = connection.BeginTransaction();
89
90 return trans;
91 }
92
93 //执行SQL命令(Insert/Delete/Update)
94 public int ExecuteNonQuery(string cmdText, params SqlParameter[] cmdParameters)
95 {
96 int rowsCountAffected = ExecuteNonQuery(null, cmdText, cmdParameters);
97 connection.Close();
98 return rowsCountAffected;
99 }
100
101 //在指定的数据库事务中执行SQL命令,最后要手工提交事务
102 public int ExecuteNonQuery(SqlTransaction inTransaction, string cmdText, params SqlParameter[] cmdParameters)
103 {
104 int rowsCountAffected = 0;
105 SqlCommand command = new SqlCommand();
106 PrepareCommand(command, inTransaction, CommandType.Text, cmdText, cmdParameters);
107 rowsCountAffected += command.ExecuteNonQuery();
108 command.Parameters.Clear();//清空参数列表,避免参数重名问题
109 //connection.Close();//在数据库事务结束时才能关闭连接
110
111 return rowsCountAffected;
112 }
113
114 //获取查询结果集中的第一行的第一列内容
115 public Object ExecuteScalar(string selectCommandText, params SqlParameter[] cmdParameters)
116 {
117 Object obj = ExecuteScalar(null, selectCommandText, cmdParameters);
118 connection.Close();
119 return obj;
120 }
121
122 //获取查询结果集中的第一行的第一列内容
123 public Object ExecuteScalar(SqlTransaction inTransaction, string selectCommandText, params SqlParameter[] cmdParameters)
124 {
125 SqlCommand command = new SqlCommand();
126 PrepareCommand(command, inTransaction, CommandType.Text, selectCommandText, cmdParameters);
127 Object obj = command.ExecuteScalar();
128 command.Parameters.Clear();//清空参数列表,避免参数重名问题
129 //connection.Close();//在数据库事务结束时才能关闭连接
130
131 return obj;
132 }
133
134 //关闭数据库连接
135 public void Close()
136 {
137 if (connection.State != ConnectionState.Closed )
138 connection.Close();
139 }
140
141 /****************************************************************************************/
142
143 //预处理Command对象
144 private void PrepareCommand(SqlCommand command, SqlTransaction inTransation,
145 CommandType cmdType, string cmdText, SqlParameter[] cmdParameters)
146 {
147 if (connection.State != ConnectionState.Open)
148 connection.Open();
149
150 command.Connection = connection;
151 command.CommandType = cmdType;
152 command.CommandText = cmdText;
153
154 if (inTransation != null)
155 command.Transaction = inTransation;
156
157 if (cmdParameters != null)
158 {
159 foreach (SqlParameter param in cmdParameters)
160 command.Parameters.Add(param);
161 }
162 }
163 }
164 }
2 using System.Collections.Generic;
3 using System.Linq;
4 using System.Text;
5 //新添命名空间
6 using System.Data;
7 using System.Configuration;
8 using System.Data.SqlClient;
9
10 namespace HomeShop.DbUtility
11 {
12 //功能:SQL Server数据访问基础类;
13 //作者:夏春涛;
14 //日期:2011-11-30;
15 public class SqlDbHelper
16 {
17 //数据库连接字符串
18 private string connectionString = "";
19 public string ConnectionString
20 {
21 get {return connectionString; }
22 }
23
24 //数据库连接对象
25 private SqlConnection connection;
26
27 //默认构造函数,从应用程序配置文件中读取第1个数据库连接字符串
28 public SqlDbHelper()
29 {
30 this.connectionString = ConfigurationManager.ConnectionStrings[1].ConnectionString;
31 this.connection = new SqlConnection(this.connectionString);
32 }
33
34 //重载构造函数,根据入参初始化数据库连接字符串
35 public SqlDbHelper(string connectionString)
36 {
37 this.connectionString = connectionString;
38 this.connection = new SqlConnection(this.connectionString);
39 }
40
41 //执行SQL命令(Select),获取返回数据
42 public DataTable ExecuteQuery(string selectCommandText, params SqlParameter[] cmdParameters)
43 {
44 SqlCommand command = new SqlCommand();
45 PrepareCommand(command, null, CommandType.Text, selectCommandText, cmdParameters);
46 SqlDataAdapter adapter = new SqlDataAdapter(command);
47 DataTable dataTable = new DataTable();
48 adapter.Fill(dataTable);
49 connection.Close();
50
51 return dataTable;
52 }
53
54 //执行多条SQL(Insert/Delete/Update),以数据库事务方式
55 public int ExecuteNonQueryTrans(List<SqlCmdTextAndParams> listCmdTextAndParams)
56 {
57 int rowsCountAffected = 0;
58 //开始数据库事务
59 SqlTransaction trans = BeginTransaction();
60 SqlCommand command = new SqlCommand();
61 try
62 {
63 //循环执行每一个CommandTextAndParameters对象
64 foreach (SqlCmdTextAndParams cmdTextAndParams in listCmdTextAndParams)
65 {
66 PrepareCommand(command, trans, CommandType.Text, cmdTextAndParams.CommandText, cmdTextAndParams.CommandParameters);
67 rowsCountAffected += command.ExecuteNonQuery();
68 //清空参数列表,避免参数重名问题
69 command.Parameters.Clear();
70 }
71 trans.Commit();//提交数据库事务
72 }
73 catch
74 {
75 trans.Rollback();//回滚数据库事务
76 throw;
77 }
78 connection.Close();
79
80 return rowsCountAffected;
81 }
82
83 //开始(生成)一个数据库事务
84 public SqlTransaction BeginTransaction()
85 {
86 if (connection.State != ConnectionState.Open)
87 connection.Open();
88 SqlTransaction trans = connection.BeginTransaction();
89
90 return trans;
91 }
92
93 //执行SQL命令(Insert/Delete/Update)
94 public int ExecuteNonQuery(string cmdText, params SqlParameter[] cmdParameters)
95 {
96 int rowsCountAffected = ExecuteNonQuery(null, cmdText, cmdParameters);
97 connection.Close();
98 return rowsCountAffected;
99 }
100
101 //在指定的数据库事务中执行SQL命令,最后要手工提交事务
102 public int ExecuteNonQuery(SqlTransaction inTransaction, string cmdText, params SqlParameter[] cmdParameters)
103 {
104 int rowsCountAffected = 0;
105 SqlCommand command = new SqlCommand();
106 PrepareCommand(command, inTransaction, CommandType.Text, cmdText, cmdParameters);
107 rowsCountAffected += command.ExecuteNonQuery();
108 command.Parameters.Clear();//清空参数列表,避免参数重名问题
109 //connection.Close();//在数据库事务结束时才能关闭连接
110
111 return rowsCountAffected;
112 }
113
114 //获取查询结果集中的第一行的第一列内容
115 public Object ExecuteScalar(string selectCommandText, params SqlParameter[] cmdParameters)
116 {
117 Object obj = ExecuteScalar(null, selectCommandText, cmdParameters);
118 connection.Close();
119 return obj;
120 }
121
122 //获取查询结果集中的第一行的第一列内容
123 public Object ExecuteScalar(SqlTransaction inTransaction, string selectCommandText, params SqlParameter[] cmdParameters)
124 {
125 SqlCommand command = new SqlCommand();
126 PrepareCommand(command, inTransaction, CommandType.Text, selectCommandText, cmdParameters);
127 Object obj = command.ExecuteScalar();
128 command.Parameters.Clear();//清空参数列表,避免参数重名问题
129 //connection.Close();//在数据库事务结束时才能关闭连接
130
131 return obj;
132 }
133
134 //关闭数据库连接
135 public void Close()
136 {
137 if (connection.State != ConnectionState.Closed )
138 connection.Close();
139 }
140
141 /****************************************************************************************/
142
143 //预处理Command对象
144 private void PrepareCommand(SqlCommand command, SqlTransaction inTransation,
145 CommandType cmdType, string cmdText, SqlParameter[] cmdParameters)
146 {
147 if (connection.State != ConnectionState.Open)
148 connection.Open();
149
150 command.Connection = connection;
151 command.CommandType = cmdType;
152 command.CommandText = cmdText;
153
154 if (inTransation != null)
155 command.Transaction = inTransation;
156
157 if (cmdParameters != null)
158 {
159 foreach (SqlParameter param in cmdParameters)
160 command.Parameters.Add(param);
161 }
162 }
163 }
164 }
SqlCmdTextAndParams.cs
View Code
1 using System;
2 using System.Collections.Generic;
3 using System.Linq;
4 using System.Text;
5 using System.Data.SqlClient;//新添命名空间
6
7 namespace HomeShop.DbUtility
8 {
9 //用于保存一条SQL命令及对应参数的类
10 public class SqlCmdTextAndParams
11 {
12 public SqlCmdTextAndParams(string commandText, params SqlParameter[] commandParamters)
13 {
14 this.CommandText = commandText;
15 this.CommandParameters = commandParamters;
16 }
17
18 public string CommandText { set; get; }
19
20 public SqlParameter[] CommandParameters { set; get; }
21 }
22 }
2 using System.Collections.Generic;
3 using System.Linq;
4 using System.Text;
5 using System.Data.SqlClient;//新添命名空间
6
7 namespace HomeShop.DbUtility
8 {
9 //用于保存一条SQL命令及对应参数的类
10 public class SqlCmdTextAndParams
11 {
12 public SqlCmdTextAndParams(string commandText, params SqlParameter[] commandParamters)
13 {
14 this.CommandText = commandText;
15 this.CommandParameters = commandParamters;
16 }
17
18 public string CommandText { set; get; }
19
20 public SqlParameter[] CommandParameters { set; get; }
21 }
22 }
//===============================================================
//支持Access访问的OleDbHelper.cs
OleDbHelper.cs
1 using System;
2 using System.Collections.Generic;
3 using System.Linq;
4 using System.Text;
5 //新添命名空间
6 using System.Data;
7 using System.Configuration;
8 using System.Data.OleDb;
9
10 namespace HomeShop.DbUtility
11 {
12 //功能:OleDb数据访问基础类;
13 //作者:夏春涛;
14 //日期:2011-12-05;
15 public class OleDbHelper
16 {
17 //数据库连接字符串
18 private string connectionString = "";
19 public string ConnectionString
20 {
21 get { return connectionString; }
22 }
23
24 //数据库连接对象
25 private OleDbConnection connection;
26
27 //默认构造函数,从应用程序配置文件中读取第1个数据库连接字符串
28 public OleDbHelper()
29 {
30 this.connectionString = ConfigurationManager.ConnectionStrings[1].ConnectionString;
31 this.connection = new OleDbConnection(this.connectionString);
32 }
33
34 //重载构造函数,根据入参初始化数据库连接字符串
35 public OleDbHelper(string connectionString)
36 {
37 this.connectionString = connectionString;
38 this.connection = new OleDbConnection(this.connectionString);
39 }
40
41 //执行SQL命令(Select),获取返回数据
42 public DataTable ExecuteQuery(string selectCommandText, params OleDbParameter[] cmdParameters)
43 {
44 OleDbCommand command = new OleDbCommand();
45 PrepareCommand(command, null, CommandType.Text, selectCommandText, cmdParameters);
46 OleDbDataAdapter adapter = new OleDbDataAdapter(command);
47 DataTable dataTable = new DataTable();
48 adapter.Fill(dataTable);
49 connection.Close();
50
51 return dataTable;
52 }
53
54 //执行多条SQL命令(Insert/Delete/Update),以数据库事务方式
55 public int ExecuteNonQueryTrans(List<OleDbCmdTextAndParams> listCmdTextAndParams)
56 {
57 int rowsCountAffected = 0;
58 //开始数据库事务
59 OleDbTransaction trans = BeginTransaction();
60 OleDbCommand command = new OleDbCommand();
61 try
62 {
63 //循环执行每一个CommandTextAndParameters对象
64 foreach (OleDbCmdTextAndParams cmdTextAndParams in listCmdTextAndParams)
65 {
66 PrepareCommand(command, trans, CommandType.Text, cmdTextAndParams.CommandText, cmdTextAndParams.CommandParameters);
67 rowsCountAffected += command.ExecuteNonQuery();
68 //清空参数列表,避免参数重名问题
69 command.Parameters.Clear();
70 }
71 trans.Commit();//提交数据库事务
72 }
73 catch
74 {
75 trans.Rollback();//回滚数据库事务
76 throw;
77 }
78 connection.Close();
79
80 return rowsCountAffected;
81 }
82
83 //开始(生成)一个数据库事务
84 public OleDbTransaction BeginTransaction()
85 {
86 if (connection.State != ConnectionState.Open)
87 connection.Open();
88 OleDbTransaction trans = connection.BeginTransaction();
89
90 return trans;
91 }
92
93 //执行SQL命令(Insert/Delete/Update)
94 public int ExecuteNonQuery(string cmdText, params OleDbParameter[] cmdParameters)
95 {
96 int rowsCountAffected = ExecuteNonQuery(null, cmdText, cmdParameters);
97 connection.Close();
98 return rowsCountAffected;
99 }
100
101 //在指定的数据库事务中执行SQL命令,最后要手工提交事务
102 public int ExecuteNonQuery(OleDbTransaction inTransaction, string cmdText, params OleDbParameter[] cmdParameters)
103 {
104 int rowsCountAffected = 0;
105 OleDbCommand command = new OleDbCommand();
106 PrepareCommand(command, inTransaction, CommandType.Text, cmdText, cmdParameters);
107 rowsCountAffected += command.ExecuteNonQuery();
108 command.Parameters.Clear();//清空参数列表,避免参数重名问题
109 //connection.Close();//在数据库事务结束时才能关闭连接
110
111 return rowsCountAffected;
112 }
113
114 //获取查询结果集中的第一行的第一列内容
115 public Object ExecuteScalar(string selectCommandText, params OleDbParameter[] cmdParameters)
116 {
117 Object obj = ExecuteScalar(null, selectCommandText, cmdParameters);
118 connection.Close();
119 return obj;
120 }
121
122 //获取查询结果集中的第一行的第一列内容
123 public Object ExecuteScalar(OleDbTransaction inTransaction, string selectCommandText, params OleDbParameter[] cmdParameters)
124 {
125 OleDbCommand command = new OleDbCommand();
126 PrepareCommand(command, inTransaction, CommandType.Text, selectCommandText, cmdParameters);
127 Object obj = command.ExecuteScalar();
128 command.Parameters.Clear();//清空参数列表,避免参数重名问题
129 //connection.Close();//在数据库事务结束时才能关闭连接
130
131 return obj;
132 }
133
134 //关闭数据库连接
135 public void Close()
136 {
137 if (connection.State != ConnectionState.Open)
138 connection.Close();
139 }
140
141 /****************************************************************************************/
142
143 //预处理Command对象
144 private void PrepareCommand(OleDbCommand command, OleDbTransaction inTransation,
145 CommandType cmdType, string cmdText, OleDbParameter[] cmdParameters)
146 {
147 if (connection.State != ConnectionState.Open)
148 connection.Open();
149
150 command.Connection = connection;
151 command.CommandType = cmdType;
152 command.CommandText = cmdText;
153
154 if (inTransation != null)
155 command.Transaction = inTransation;
156
157 if (cmdParameters != null)
158 {
159 foreach (OleDbParameter param in cmdParameters)
160 command.Parameters.Add(param);
161 }
162 }
163 }
164 }
2 using System.Collections.Generic;
3 using System.Linq;
4 using System.Text;
5 //新添命名空间
6 using System.Data;
7 using System.Configuration;
8 using System.Data.OleDb;
9
10 namespace HomeShop.DbUtility
11 {
12 //功能:OleDb数据访问基础类;
13 //作者:夏春涛;
14 //日期:2011-12-05;
15 public class OleDbHelper
16 {
17 //数据库连接字符串
18 private string connectionString = "";
19 public string ConnectionString
20 {
21 get { return connectionString; }
22 }
23
24 //数据库连接对象
25 private OleDbConnection connection;
26
27 //默认构造函数,从应用程序配置文件中读取第1个数据库连接字符串
28 public OleDbHelper()
29 {
30 this.connectionString = ConfigurationManager.ConnectionStrings[1].ConnectionString;
31 this.connection = new OleDbConnection(this.connectionString);
32 }
33
34 //重载构造函数,根据入参初始化数据库连接字符串
35 public OleDbHelper(string connectionString)
36 {
37 this.connectionString = connectionString;
38 this.connection = new OleDbConnection(this.connectionString);
39 }
40
41 //执行SQL命令(Select),获取返回数据
42 public DataTable ExecuteQuery(string selectCommandText, params OleDbParameter[] cmdParameters)
43 {
44 OleDbCommand command = new OleDbCommand();
45 PrepareCommand(command, null, CommandType.Text, selectCommandText, cmdParameters);
46 OleDbDataAdapter adapter = new OleDbDataAdapter(command);
47 DataTable dataTable = new DataTable();
48 adapter.Fill(dataTable);
49 connection.Close();
50
51 return dataTable;
52 }
53
54 //执行多条SQL命令(Insert/Delete/Update),以数据库事务方式
55 public int ExecuteNonQueryTrans(List<OleDbCmdTextAndParams> listCmdTextAndParams)
56 {
57 int rowsCountAffected = 0;
58 //开始数据库事务
59 OleDbTransaction trans = BeginTransaction();
60 OleDbCommand command = new OleDbCommand();
61 try
62 {
63 //循环执行每一个CommandTextAndParameters对象
64 foreach (OleDbCmdTextAndParams cmdTextAndParams in listCmdTextAndParams)
65 {
66 PrepareCommand(command, trans, CommandType.Text, cmdTextAndParams.CommandText, cmdTextAndParams.CommandParameters);
67 rowsCountAffected += command.ExecuteNonQuery();
68 //清空参数列表,避免参数重名问题
69 command.Parameters.Clear();
70 }
71 trans.Commit();//提交数据库事务
72 }
73 catch
74 {
75 trans.Rollback();//回滚数据库事务
76 throw;
77 }
78 connection.Close();
79
80 return rowsCountAffected;
81 }
82
83 //开始(生成)一个数据库事务
84 public OleDbTransaction BeginTransaction()
85 {
86 if (connection.State != ConnectionState.Open)
87 connection.Open();
88 OleDbTransaction trans = connection.BeginTransaction();
89
90 return trans;
91 }
92
93 //执行SQL命令(Insert/Delete/Update)
94 public int ExecuteNonQuery(string cmdText, params OleDbParameter[] cmdParameters)
95 {
96 int rowsCountAffected = ExecuteNonQuery(null, cmdText, cmdParameters);
97 connection.Close();
98 return rowsCountAffected;
99 }
100
101 //在指定的数据库事务中执行SQL命令,最后要手工提交事务
102 public int ExecuteNonQuery(OleDbTransaction inTransaction, string cmdText, params OleDbParameter[] cmdParameters)
103 {
104 int rowsCountAffected = 0;
105 OleDbCommand command = new OleDbCommand();
106 PrepareCommand(command, inTransaction, CommandType.Text, cmdText, cmdParameters);
107 rowsCountAffected += command.ExecuteNonQuery();
108 command.Parameters.Clear();//清空参数列表,避免参数重名问题
109 //connection.Close();//在数据库事务结束时才能关闭连接
110
111 return rowsCountAffected;
112 }
113
114 //获取查询结果集中的第一行的第一列内容
115 public Object ExecuteScalar(string selectCommandText, params OleDbParameter[] cmdParameters)
116 {
117 Object obj = ExecuteScalar(null, selectCommandText, cmdParameters);
118 connection.Close();
119 return obj;
120 }
121
122 //获取查询结果集中的第一行的第一列内容
123 public Object ExecuteScalar(OleDbTransaction inTransaction, string selectCommandText, params OleDbParameter[] cmdParameters)
124 {
125 OleDbCommand command = new OleDbCommand();
126 PrepareCommand(command, inTransaction, CommandType.Text, selectCommandText, cmdParameters);
127 Object obj = command.ExecuteScalar();
128 command.Parameters.Clear();//清空参数列表,避免参数重名问题
129 //connection.Close();//在数据库事务结束时才能关闭连接
130
131 return obj;
132 }
133
134 //关闭数据库连接
135 public void Close()
136 {
137 if (connection.State != ConnectionState.Open)
138 connection.Close();
139 }
140
141 /****************************************************************************************/
142
143 //预处理Command对象
144 private void PrepareCommand(OleDbCommand command, OleDbTransaction inTransation,
145 CommandType cmdType, string cmdText, OleDbParameter[] cmdParameters)
146 {
147 if (connection.State != ConnectionState.Open)
148 connection.Open();
149
150 command.Connection = connection;
151 command.CommandType = cmdType;
152 command.CommandText = cmdText;
153
154 if (inTransation != null)
155 command.Transaction = inTransation;
156
157 if (cmdParameters != null)
158 {
159 foreach (OleDbParameter param in cmdParameters)
160 command.Parameters.Add(param);
161 }
162 }
163 }
164 }
OleDbCmdTextAndParams.cs
View Code
1 using System;
2 using System.Collections.Generic;
3 using System.Linq;
4 using System.Text;
5 //新添命名空间
6 using System.Data.OleDb;
7
8 namespace HomeShop.DbUtility
9 {
10 //用于保存一条SQL命令及对应参数的类
11 public class OleDbCmdTextAndParams
12 {
13 public OleDbCmdTextAndParams(string commandText, params OleDbParameter[] commandParamters)
14 {
15 this.CommandText = commandText;
16 this.CommandParameters = commandParamters;
17 }
18
19 public string CommandText { set; get; }
20
21 public OleDbParameter[] CommandParameters { set; get; }
22 }
23 }
2 using System.Collections.Generic;
3 using System.Linq;
4 using System.Text;
5 //新添命名空间
6 using System.Data.OleDb;
7
8 namespace HomeShop.DbUtility
9 {
10 //用于保存一条SQL命令及对应参数的类
11 public class OleDbCmdTextAndParams
12 {
13 public OleDbCmdTextAndParams(string commandText, params OleDbParameter[] commandParamters)
14 {
15 this.CommandText = commandText;
16 this.CommandParameters = commandParamters;
17 }
18
19 public string CommandText { set; get; }
20
21 public OleDbParameter[] CommandParameters { set; get; }
22 }
23 }
源码下载:/Files/SummerRain/NetDbDevRoad/7使用ADONET实现工厂模式DB切换.rar
数据下载:/Files/SummerRain/NetDbDevRoad/HomeShopDB.rar