我的数据访问函数库的源代码(四)—— 存储过程部分,包括存储过程的参数的封装
2006-08-16 04:34 金色海洋(jyk) 阅读(1501) 评论(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
#endregion11
12
//int: tinyint、smallint13
//bigint:14
//bool: bit15
//double: float、real16
//string: char、nchar、varchar、nvarchar、uniqueidentifier、smalldatetime、datetime17
//string: ntext、text18

19
//decimal:从 -10^38 +1 到 10^38 –1 的固定精度和小数位的数字数据。20
//numeric:功能上等同于 decimal。21
//decimal: smallmoney、money22

23
//二进制24
// binary、varbinary、image25

26

输入型的参数 int 、double、decimal、nvarChar、、、#region 输入型的参数 int 、double、decimal、nvarChar、、、27

int#region int28

/**//// <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 double42

/**//// <summary>43
/// 添加小数参数,double44
/// </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 decimal55

/**//// <summary>56
/// 添加金额参数,方向是输入(input)。decimal57
/// </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 nvarChar68

/**//// <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 nText82

/**//// <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 bit96

/**//// <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
#endregion109

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
#endregion141

142
#endregion143

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
#endregion166

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
#endregion182

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 函数实现 — — RunStoreDataSet192
public DataSet RunStoreDataSet(string StoredProcedureName)193

{ 194
SetCommand(StoredProcedureName,2); //设置command195
SqlDataAdapter da = new SqlDataAdapter(cm);196
try197

{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
finally208

{209
da.Dispose();210
}211
}212
#endregion213

214

/**//// <summary>215
/// 运行存储过程返回DataTable。216
/// </summary>217
/// <param name="StoredProcedureName">存储过程名称</param>218
/// <returns>返回DataTable</returns>219

函数实现 — — RunStoreDataTable#region 函数实现 — — RunStoreDataTable220
public DataTable RunStoreDataTable(string StoredProcedureName)221

{ 222
SetCommand(StoredProcedureName,2); //设置command223
SqlDataAdapter da = new SqlDataAdapter(cm);224
try225

{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
finally236

{237
da.Dispose();238
}239
}240
#endregion241
242

/**//// <summary>243
/// 运行存储过程 不返回记录集,用于添加、修改、删除等操作244
/// </summary>245
/// <param name="ParameterName">存储过程名称</param>246
/// <returns></returns>247
public void RunStore(string StoredProcedureName)248

{ 249
SetCommand(StoredProcedureName,2); //设置command250
try251

{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
finally261

{262
if (!isUseTrans)263
cm.Connection.Close();264
}265

266
}267

268
#endregion269

下载全部源文件。
浙公网安备 33010602011771号