我的数据访问函数库的源代码(四)—— 存储过程部分,包括存储过程的参数的封装
2006-08-16 04:34 金色海洋(jyk) 阅读(1484) 评论(2) 编辑 收藏 举报
存储过程部分,包括存储过程的参数。
/* 2008 4 25 更新 */
我的数据访问函数库的源码。整个类有1400行,原先就是分开来写的,现在更新后还是分开来发一下吧。
第四部分:存储过程部分,包括存储过程的参数,主要是对存储过程的参数的封装。
我的数据访问函数库的源码。整个类有1400行,原先就是分开来写的,现在更新后还是分开来发一下吧。
第四部分:存储过程部分,包括存储过程的参数,主要是对存储过程的参数的封装。
1//存储过程的参数部分
2 存储过程的参数部分——清除和添加参数#region 存储过程的参数部分——清除和添加参数
3
4 清除参数#region 清除参数
5 /**//// <summary>
6 /// 清除SqlCommand的存储过程的参数。
7 /// </summary>
8 public void ClearParameter()
9 {cm.Parameters.Clear();}
10 #endregion
11
12 //int: tinyint、smallint
13 //bigint:
14 //bool: bit
15 //double: float、real
16 //string: char、nchar、varchar、nvarchar、uniqueidentifier、smalldatetime、datetime
17 //string: ntext、text
18
19 //decimal:从 -10^38 +1 到 10^38 –1 的固定精度和小数位的数字数据。
20 //numeric:功能上等同于 decimal。
21 //decimal: smallmoney、money
22
23 //二进制
24 // binary、varbinary、image
25
26 输入型的参数 int 、double、decimal、nvarChar、、、#region 输入型的参数 int 、double、decimal、nvarChar、、、
27 int#region int
28 /**//// <summary>
29 /// 添加int型的参数。
30 /// </summary>
31 /// <param name="ParameterName">参数名称。比如 @UserName</param>
32 /// <param name="ParameterValue">参数值</param>
33 public void addNewParameter(string ParameterName,int ParameterValue)
34 {
35 cm.Parameters.Add(ParameterName,SqlDbType.Int,4); //添加存储过程的参数
36 cm.Parameters[ParameterName].Value=ParameterValue; //负值
37 //设置方向取默认值——输入
38 }
39 #endregion
40
41 double#region double
42 /**//// <summary>
43 /// 添加小数参数,double
44 /// </summary>
45 /// <param name="ParameterName">参数名称。比如 @UserName</param>
46 /// <param name="ParameterValue">参数值</param>
47 public void addNewParameter(string ParameterName,double ParameterValue )
48 {
49 cm.Parameters.Add(ParameterName,SqlDbType.Float ); //添加存储过程的参数
50 cm.Parameters[ParameterName].Value=ParameterValue; //负值
51 }
52 #endregion
53
54 decimal#region decimal
55 /**//// <summary>
56 /// 添加金额参数,方向是输入(input)。decimal
57 /// </summary>
58 /// <param name="ParameterName">参数名称。比如 @UserName</param>
59 /// <param name="ParameterValue">参数值</param>
60 public void addNewParameter(string ParameterName,decimal ParameterValue )
61 {
62 cm.Parameters.Add(ParameterName,SqlDbType.Decimal); //添加存储过程的参数
63 cm.Parameters[ParameterName].Value=ParameterValue; //负值
64 }
65 #endregion
66
67 nvarChar#region nvarChar
68 /**//// <summary>
69 /// 添加nvarChar型的参数。方向是输入(input)
70 /// </summary>
71 /// <param name="ParameterName">参数名称。比如 @UserName</param>
72 /// <param name="ParameterValue">参数值</param>
73 /// <param name="size">参数大小</param>
74 public void addNewParameter(string ParameterName,string ParameterValue,int size)
75 {
76 cm.Parameters.Add(ParameterName,SqlDbType.NVarChar,size); //添加存储过程的参数
77 cm.Parameters[ParameterName].Value=ParameterValue; //负值
78 }
79 #endregion
80
81 nText#region nText
82 /**//// <summary>
83 /// 添加nText型的参数。方向是输入(input)
84 /// </summary>
85 /// <param name="ParameterName">参数名称。比如 @UserName</param>
86 /// <param name="ParameterValue">参数值</param>
87 public void addNewParameter(string ParameterName,string ParameterValue)
88 {
89 cm.Parameters.Add(ParameterName,SqlDbType.NText); //添加存储过程的参数
90 cm.Parameters[ParameterName].Value=ParameterValue; //负值
91 }
92
93 #endregion
94
95 bit#region bit
96 /**//// <summary>
97 /// 添加bit型的参数。方向是输入(input)
98 /// </summary>
99 /// <param name="ParameterName">参数名称。比如 @UserName</param>
100 /// <param name="ParameterValue">参数值</param>
101 public void addNewParameter(string ParameterName,bool ParameterValue)
102 {
103 cm.Parameters.Add(ParameterName,SqlDbType.Bit); //添加存储过程的参数
104 cm.Parameters[ParameterName].Value=ParameterValue; //负值
105 }
106 #endregion
107
108 #endregion
109
110 输出型的参数#region 输出型的参数
111
112 /**//// <summary>
113 /// 添加输出型的参数。只支持常用的几个参数类型,如果需要可以扩充。
114 /// </summary>
115 /// <param name="ParameterName">参数名称。比如 @UserName</param>
116 /// <param name="ParameterValue">参数的类型</param>
117 public void addNewParameter(string ParameterName,HBS.ParameterKind kind)
118 {
119 switch(kind)
120 {
121 case ParameterKind.Int :
122 cm.Parameters.Add(ParameterName,SqlDbType.Int); //添加存储过程的参数
123 break;
124 case ParameterKind.Double:
125 cm.Parameters.Add(ParameterName,SqlDbType.Float); //添加存储过程的参数
126 break;
127 case ParameterKind.Decimal :
128 cm.Parameters.Add(ParameterName,SqlDbType.Decimal); //添加存储过程的参数
129 break;
130 case ParameterKind.NVarChar :
131 cm.Parameters.Add(ParameterName,SqlDbType.NVarChar,4000); //添加存储过程的参数
132 break;
133 case ParameterKind.Bit :
134 cm.Parameters.Add(ParameterName,SqlDbType.Bit); //添加存储过程的参数
135 break;
136 }
137 cm.Parameters[ParameterName].Direction= ParameterDirection.Output; //设置方向
138 }
139
140 #endregion
141
142 #endregion
143
144 存储过程的参数部分——取参数的返回值#region 存储过程的参数部分——取参数的返回值
145
146 /**//// <summary>
147 /// 按序号返回参数值,一般在执行完存储过程后使用
148 /// </summary>
149 /// <param name="ParameterIndex">序号</param>
150 /// <returns>返回参数的内容</returns>
151 public string getParameter(int ParameterIndex)
152 {
153 return cm.Parameters[ParameterIndex].Value.ToString();
154 }
155
156 /**//// <summary>
157 /// 按名称返回参数值,一般在执行完存储过程后使用
158 /// </summary>
159 /// <param name="ParameterName">参数名称。比如 @UserName</param>
160 /// <returns>返回参数的内容</returns>
161 public string getParameter(string ParameterName)
162 {
163 return cm.Parameters[ParameterName].Value.ToString();
164 }
165 #endregion
166
167 存储过程的参数部分——修改参数值#region 存储过程的参数部分——修改参数值
168 /**//// <summary>
169 /// 按序号修改参数值,一般在一次添加多条记录时用。
170 /// </summary>
171 /// <param name="ParameterIndex">序号</param>
172 public void setParameter(int ParameterIndex,string parameterValue)
173 { cm.Parameters[ParameterIndex].Value = parameterValue;}
174
175 /**//// <summary>
176 /// 按名称修改参数值,一般在一次添加多条记录时用
177 /// </summary>
178 /// <param name="ParameterName">参数名称。比如 @UserName</param>
179 public void setParameter(string ParameterName,string parameterValue)
180 { cm.Parameters[ParameterName].Value = parameterValue;}
181 #endregion
182
183 //存储过程部分
184 运行存储过程返回记录(DataSet、DataTable、不返回记录集)#region 运行存储过程返回记录(DataSet、DataTable、不返回记录集)
185
186 /**//// <summary>
187 /// 运行存储过程返回DataSet。DataSet里面可以是多个表(DateTable)
188 /// </summary>
189 /// <param name="StoredProcedureName">存储过程名称</param>
190 /// <returns>返回DataSet</returns>
191 函数实现 — — RunStoreDataSet#region 函数实现 — — RunStoreDataSet
192 public DataSet RunStoreDataSet(string StoredProcedureName)
193 {
194 SetCommand(StoredProcedureName,2); //设置command
195 SqlDataAdapter da = new SqlDataAdapter(cm);
196 try
197 {
198 DataSet DS = new DataSet();
199 da.Fill(DS);
200 return DS;
201 }
202 catch(Exception ex)
203 {
204 SetErrorMsg("RunStoreDataSet",StoredProcedureName,ex.Message ); //处理错误
205 return null;
206 }
207 finally
208 {
209 da.Dispose();
210 }
211 }
212 #endregion
213
214 /**//// <summary>
215 /// 运行存储过程返回DataTable。
216 /// </summary>
217 /// <param name="StoredProcedureName">存储过程名称</param>
218 /// <returns>返回DataTable</returns>
219 函数实现 — — RunStoreDataTable#region 函数实现 — — RunStoreDataTable
220 public DataTable RunStoreDataTable(string StoredProcedureName)
221 {
222 SetCommand(StoredProcedureName,2); //设置command
223 SqlDataAdapter da = new SqlDataAdapter(cm);
224 try
225 {
226 DataTable dt = new DataTable();
227 da.Fill(dt);
228 return dt;
229 }
230 catch(Exception ex)
231 {
232 SetErrorMsg("RunStoreDataTable",StoredProcedureName,ex.Message ); //处理错误
233 return null;
234 }
235 finally
236 {
237 da.Dispose();
238 }
239 }
240 #endregion
241
242 /**//// <summary>
243 /// 运行存储过程 不返回记录集,用于添加、修改、删除等操作
244 /// </summary>
245 /// <param name="ParameterName">存储过程名称</param>
246 /// <returns></returns>
247 public void RunStore(string StoredProcedureName)
248 {
249 SetCommand(StoredProcedureName,2); //设置command
250 try
251 {
252 if (cm.Connection.State == ConnectionState.Broken || cm.Connection.State == ConnectionState.Closed )
253 cm.Connection.Open();
254 cm.ExecuteNonQuery();
255 }
256 catch(Exception ex)
257 {
258 SetErrorMsg("RunStore",StoredProcedureName,ex.Message ); //处理错误
259 }
260 finally
261 {
262 if (!isUseTrans)
263 cm.Connection.Close();
264 }
265
266 }
267
268 #endregion
269
2 存储过程的参数部分——清除和添加参数#region 存储过程的参数部分——清除和添加参数
3
4 清除参数#region 清除参数
5 /**//// <summary>
6 /// 清除SqlCommand的存储过程的参数。
7 /// </summary>
8 public void ClearParameter()
9 {cm.Parameters.Clear();}
10 #endregion
11
12 //int: tinyint、smallint
13 //bigint:
14 //bool: bit
15 //double: float、real
16 //string: char、nchar、varchar、nvarchar、uniqueidentifier、smalldatetime、datetime
17 //string: ntext、text
18
19 //decimal:从 -10^38 +1 到 10^38 –1 的固定精度和小数位的数字数据。
20 //numeric:功能上等同于 decimal。
21 //decimal: smallmoney、money
22
23 //二进制
24 // binary、varbinary、image
25
26 输入型的参数 int 、double、decimal、nvarChar、、、#region 输入型的参数 int 、double、decimal、nvarChar、、、
27 int#region int
28 /**//// <summary>
29 /// 添加int型的参数。
30 /// </summary>
31 /// <param name="ParameterName">参数名称。比如 @UserName</param>
32 /// <param name="ParameterValue">参数值</param>
33 public void addNewParameter(string ParameterName,int ParameterValue)
34 {
35 cm.Parameters.Add(ParameterName,SqlDbType.Int,4); //添加存储过程的参数
36 cm.Parameters[ParameterName].Value=ParameterValue; //负值
37 //设置方向取默认值——输入
38 }
39 #endregion
40
41 double#region double
42 /**//// <summary>
43 /// 添加小数参数,double
44 /// </summary>
45 /// <param name="ParameterName">参数名称。比如 @UserName</param>
46 /// <param name="ParameterValue">参数值</param>
47 public void addNewParameter(string ParameterName,double ParameterValue )
48 {
49 cm.Parameters.Add(ParameterName,SqlDbType.Float ); //添加存储过程的参数
50 cm.Parameters[ParameterName].Value=ParameterValue; //负值
51 }
52 #endregion
53
54 decimal#region decimal
55 /**//// <summary>
56 /// 添加金额参数,方向是输入(input)。decimal
57 /// </summary>
58 /// <param name="ParameterName">参数名称。比如 @UserName</param>
59 /// <param name="ParameterValue">参数值</param>
60 public void addNewParameter(string ParameterName,decimal ParameterValue )
61 {
62 cm.Parameters.Add(ParameterName,SqlDbType.Decimal); //添加存储过程的参数
63 cm.Parameters[ParameterName].Value=ParameterValue; //负值
64 }
65 #endregion
66
67 nvarChar#region nvarChar
68 /**//// <summary>
69 /// 添加nvarChar型的参数。方向是输入(input)
70 /// </summary>
71 /// <param name="ParameterName">参数名称。比如 @UserName</param>
72 /// <param name="ParameterValue">参数值</param>
73 /// <param name="size">参数大小</param>
74 public void addNewParameter(string ParameterName,string ParameterValue,int size)
75 {
76 cm.Parameters.Add(ParameterName,SqlDbType.NVarChar,size); //添加存储过程的参数
77 cm.Parameters[ParameterName].Value=ParameterValue; //负值
78 }
79 #endregion
80
81 nText#region nText
82 /**//// <summary>
83 /// 添加nText型的参数。方向是输入(input)
84 /// </summary>
85 /// <param name="ParameterName">参数名称。比如 @UserName</param>
86 /// <param name="ParameterValue">参数值</param>
87 public void addNewParameter(string ParameterName,string ParameterValue)
88 {
89 cm.Parameters.Add(ParameterName,SqlDbType.NText); //添加存储过程的参数
90 cm.Parameters[ParameterName].Value=ParameterValue; //负值
91 }
92
93 #endregion
94
95 bit#region bit
96 /**//// <summary>
97 /// 添加bit型的参数。方向是输入(input)
98 /// </summary>
99 /// <param name="ParameterName">参数名称。比如 @UserName</param>
100 /// <param name="ParameterValue">参数值</param>
101 public void addNewParameter(string ParameterName,bool ParameterValue)
102 {
103 cm.Parameters.Add(ParameterName,SqlDbType.Bit); //添加存储过程的参数
104 cm.Parameters[ParameterName].Value=ParameterValue; //负值
105 }
106 #endregion
107
108 #endregion
109
110 输出型的参数#region 输出型的参数
111
112 /**//// <summary>
113 /// 添加输出型的参数。只支持常用的几个参数类型,如果需要可以扩充。
114 /// </summary>
115 /// <param name="ParameterName">参数名称。比如 @UserName</param>
116 /// <param name="ParameterValue">参数的类型</param>
117 public void addNewParameter(string ParameterName,HBS.ParameterKind kind)
118 {
119 switch(kind)
120 {
121 case ParameterKind.Int :
122 cm.Parameters.Add(ParameterName,SqlDbType.Int); //添加存储过程的参数
123 break;
124 case ParameterKind.Double:
125 cm.Parameters.Add(ParameterName,SqlDbType.Float); //添加存储过程的参数
126 break;
127 case ParameterKind.Decimal :
128 cm.Parameters.Add(ParameterName,SqlDbType.Decimal); //添加存储过程的参数
129 break;
130 case ParameterKind.NVarChar :
131 cm.Parameters.Add(ParameterName,SqlDbType.NVarChar,4000); //添加存储过程的参数
132 break;
133 case ParameterKind.Bit :
134 cm.Parameters.Add(ParameterName,SqlDbType.Bit); //添加存储过程的参数
135 break;
136 }
137 cm.Parameters[ParameterName].Direction= ParameterDirection.Output; //设置方向
138 }
139
140 #endregion
141
142 #endregion
143
144 存储过程的参数部分——取参数的返回值#region 存储过程的参数部分——取参数的返回值
145
146 /**//// <summary>
147 /// 按序号返回参数值,一般在执行完存储过程后使用
148 /// </summary>
149 /// <param name="ParameterIndex">序号</param>
150 /// <returns>返回参数的内容</returns>
151 public string getParameter(int ParameterIndex)
152 {
153 return cm.Parameters[ParameterIndex].Value.ToString();
154 }
155
156 /**//// <summary>
157 /// 按名称返回参数值,一般在执行完存储过程后使用
158 /// </summary>
159 /// <param name="ParameterName">参数名称。比如 @UserName</param>
160 /// <returns>返回参数的内容</returns>
161 public string getParameter(string ParameterName)
162 {
163 return cm.Parameters[ParameterName].Value.ToString();
164 }
165 #endregion
166
167 存储过程的参数部分——修改参数值#region 存储过程的参数部分——修改参数值
168 /**//// <summary>
169 /// 按序号修改参数值,一般在一次添加多条记录时用。
170 /// </summary>
171 /// <param name="ParameterIndex">序号</param>
172 public void setParameter(int ParameterIndex,string parameterValue)
173 { cm.Parameters[ParameterIndex].Value = parameterValue;}
174
175 /**//// <summary>
176 /// 按名称修改参数值,一般在一次添加多条记录时用
177 /// </summary>
178 /// <param name="ParameterName">参数名称。比如 @UserName</param>
179 public void setParameter(string ParameterName,string parameterValue)
180 { cm.Parameters[ParameterName].Value = parameterValue;}
181 #endregion
182
183 //存储过程部分
184 运行存储过程返回记录(DataSet、DataTable、不返回记录集)#region 运行存储过程返回记录(DataSet、DataTable、不返回记录集)
185
186 /**//// <summary>
187 /// 运行存储过程返回DataSet。DataSet里面可以是多个表(DateTable)
188 /// </summary>
189 /// <param name="StoredProcedureName">存储过程名称</param>
190 /// <returns>返回DataSet</returns>
191 函数实现 — — RunStoreDataSet#region 函数实现 — — RunStoreDataSet
192 public DataSet RunStoreDataSet(string StoredProcedureName)
193 {
194 SetCommand(StoredProcedureName,2); //设置command
195 SqlDataAdapter da = new SqlDataAdapter(cm);
196 try
197 {
198 DataSet DS = new DataSet();
199 da.Fill(DS);
200 return DS;
201 }
202 catch(Exception ex)
203 {
204 SetErrorMsg("RunStoreDataSet",StoredProcedureName,ex.Message ); //处理错误
205 return null;
206 }
207 finally
208 {
209 da.Dispose();
210 }
211 }
212 #endregion
213
214 /**//// <summary>
215 /// 运行存储过程返回DataTable。
216 /// </summary>
217 /// <param name="StoredProcedureName">存储过程名称</param>
218 /// <returns>返回DataTable</returns>
219 函数实现 — — RunStoreDataTable#region 函数实现 — — RunStoreDataTable
220 public DataTable RunStoreDataTable(string StoredProcedureName)
221 {
222 SetCommand(StoredProcedureName,2); //设置command
223 SqlDataAdapter da = new SqlDataAdapter(cm);
224 try
225 {
226 DataTable dt = new DataTable();
227 da.Fill(dt);
228 return dt;
229 }
230 catch(Exception ex)
231 {
232 SetErrorMsg("RunStoreDataTable",StoredProcedureName,ex.Message ); //处理错误
233 return null;
234 }
235 finally
236 {
237 da.Dispose();
238 }
239 }
240 #endregion
241
242 /**//// <summary>
243 /// 运行存储过程 不返回记录集,用于添加、修改、删除等操作
244 /// </summary>
245 /// <param name="ParameterName">存储过程名称</param>
246 /// <returns></returns>
247 public void RunStore(string StoredProcedureName)
248 {
249 SetCommand(StoredProcedureName,2); //设置command
250 try
251 {
252 if (cm.Connection.State == ConnectionState.Broken || cm.Connection.State == ConnectionState.Closed )
253 cm.Connection.Open();
254 cm.ExecuteNonQuery();
255 }
256 catch(Exception ex)
257 {
258 SetErrorMsg("RunStore",StoredProcedureName,ex.Message ); //处理错误
259 }
260 finally
261 {
262 if (!isUseTrans)
263 cm.Connection.Close();
264 }
265
266 }
267
268 #endregion
269
下载全部源文件。