1
using System;2
using System.Data;3
using System.Data.SqlClient;4
namespace DBOperator5


{6

/**//// <summary>7
/// Class1 的摘要说明。8
/// </summary>9
public class DBOper10

{11
private string connstr=System.Configuration.ConfigurationSettings.AppSettings["DSN"];12
private SqlConnection sqlCon;13
14

打开数据库连接#region 打开数据库连接15

/**//// <summary>16
/// 打开数据库连接.17
/// </summary>18
private void Open() 19

{20
// 打开数据库连接21
if (sqlCon == null) 22

{23
sqlCon = new SqlConnection(connstr); 24
} 25
if(sqlCon.State== ConnectionState.Closed)26

{ 27
try28

{29

/**////打开数据库连接30
sqlCon.Open();31
}32
catch(Exception ex)33

{34
SystemTools.SystemError.SystemLog(ex.Message);35
}36
37
}38
}39
#endregion40

41

关闭数据库连接#region 关闭数据库连接42

/**//// <summary>43
/// 关闭数据库连接44
/// </summary>45
public void Close() 46

{47

/**////判断连接是否已经创建48
if(sqlCon != null)49

{50

/**////判断连接的状态是否打开51
if(sqlCon.State ==ConnectionState.Open)52

{53
sqlCon.Close();54
}55
}56
}57
#endregion58

59

释放资源#region 释放资源60

/**//// <summary>61
/// 释放资源62
/// </summary>63
public void Dispose() 64

{65
// 确认连接是否已经关闭66
if (sqlCon != null) 67

{68
sqlCon.Dispose();69
sqlCon = null;70
} 71
}72
#endregion73

74

创建能执行存储过程(带参数的和不带参数的)的Command对象#region 创建能执行存储过程(带参数的和不带参数的)的Command对象75

/**//// <summary>76
/// 创建能执行存储过程(带参数的和不带参数的)的Command对象77
/// </summary>78
/// <param name="procName"></param>79
/// <param name="prams"></param>80
/// <returns></returns>81
private SqlCommand CreateCommand(string procName, SqlParameter[] prams) 82

{83

/**////打开数据库连接84
Open();85
86

/**////设置Command87
SqlCommand sqlCom= new SqlCommand(procName, sqlCon);88
sqlCom.CommandType = CommandType.StoredProcedure;89

90

/**////添加把存储过程的参数91
if (prams != null) 92

{93
foreach (SqlParameter parameter in prams)94

{95
sqlCom.Parameters.Add(parameter);96
}97
}98
99

/**////返回创建的SqlCommand对象100
return sqlCom;101
}102
#endregion103

104

执行无返回值的存储过程(通过参数重载)#region 执行无返回值的存储过程(通过参数重载)105
public void RunProc(string procName) 106

{107
SqlCommand sqlCom=CreateCommand(procName, null);108
try109

{110

/**////执行存储过程111
sqlCom.ExecuteNonQuery();112
}113
catch(Exception ex)114

{115

/**////记录错误日志116
SystemTools.SystemError.SystemLog(ex.Message);117
}118
finally119

{120

/**////关闭数据库的连接121
Close();122
}123

124
}125

126

127
public void RunProc(string procName, SqlParameter[] prams) 128

{129
SqlCommand sqlCom= CreateCommand(procName, prams);130
try131

{132

/**////执行存储过程133
sqlCom.ExecuteNonQuery();134
}135
catch(Exception ex)136

{137

/**////记录错误日志138
SystemTools.SystemError.SystemLog(ex.Message);139
}140

/**////关闭数据库的连接141
Close();142
143
}144

145

146

147
148
public void RunProc(string procName, out SqlDataReader dataReader) 149

{150

/**////创建Command151
SqlCommand sqlCom= CreateCommand(procName, null);152
153

/**////读取数据154
dataReader = sqlCom.ExecuteReader(CommandBehavior.CloseConnection); 155
156
}157

158
public DataSet RunProc_DataSet(string procName) 159

{160

/**////创建Command161
SqlCommand sqlCom= CreateCommand(procName, null);162
SqlDataAdapter sqlDa=new SqlDataAdapter();163
DataSet ds=new DataSet();164
165
sqlDa.SelectCommand = sqlCom;166
sqlDa.Fill(ds);167
return ds;168
169
}170

171
public void RunProc(string procName, SqlParameter[] prams, out SqlDataReader dataReader) 172

{173

/**////创建Command174
SqlCommand sqlCom = CreateCommand(procName, prams);175
176

/**////读取数据177
dataReader = sqlCom.ExecuteReader(CommandBehavior.CloseConnection); 178
179
}180

181
#endregion182

183

执行有返回值的存储过程(返回一个DataSet)#region 执行有返回值的存储过程(返回一个DataSet)184
public DataSet RunProc_DataSet(string procName, SqlParameter[] prams) 185

{186

/**////创建Command187
SqlCommand sqlCom = CreateCommand(procName, prams);188
189
SqlDataAdapter sqlDa=new SqlDataAdapter();190
DataSet ds=new DataSet();191
sqlDa.SelectCommand=sqlCom;192
sqlDa.Fill(ds);193
return ds;194

195
}196
#endregion 197

198
199

生成存储过程参数#region 生成存储过程参数200

/**//// <summary>201
/// 生成存储过程参数202
/// </summary>203
/// <param name="ParamName">存储过程名称</param>204
/// <param name="DbType">参数类型</param>205
/// <param name="Size">参数大小</param>206
/// <param name="Direction">参数方向</param>207
/// <param name="Value">参数值</param>208
/// <returns>新的 parameter 对象</returns>209
public SqlParameter CreateParam(string ParamName, SqlDbType DbType, Int32 Size, ParameterDirection Direction, object Value) 210

{211
SqlParameter param;212

213

/**////当参数大小为0时,不使用该参数大小值214
if(Size > 0)215

{216
param = new SqlParameter(ParamName, DbType, Size);217
}218
else219

{220

/**////当参数大小为0时,不使用该参数大小值221
param = new SqlParameter(ParamName, DbType);222
}223

224

/**////创建输出类型的参数225
param.Direction = Direction;226
if (!(Direction == ParameterDirection.Output && Value == null))227

{228
param.Value = Value;229
}230

231

/**////返回创建的参数232
return param;233
}234
#endregion235

236

传入输入参数#region 传入输入参数237

/**//// <summary>238
/// 传入输入参数239
/// </summary>240
/// <param name="ParamName">存储过程名称</param>241
/// <param name="DbType">参数类型</param></param>242
/// <param name="Size">参数大小</param>243
/// <param name="Value">参数值</param>244
/// <returns>新的parameter 对象</returns>245
public SqlParameter CreateInParam(string ParamName, SqlDbType DbType, int Size, object Value) 246

{247

/**////创建输入类型的参数248
return CreateParam(ParamName, DbType, Size, ParameterDirection.Input, Value);249
} 250
#endregion251

252

传入返回值参数#region 传入返回值参数253

/**//// <summary>254
/// 传入返回值参数255
/// </summary>256
/// <param name="ParamName">存储过程名称</param>257
/// <param name="DbType">参数类型</param>258
/// <param name="Size">参数大小</param>259
/// <returns>新的 parameter 对象</returns>260
public SqlParameter CreateOutParam(string ParamName, SqlDbType DbType, int Size) 261

{262

/**////创建输出类型的参数263
return CreateParam(ParamName, DbType, Size, ParameterDirection.Output,null);264
} 265

266

/**//// <summary>267
/// 传入返回值参数268
/// </summary>269
/// <param name="ParamName">存储过程名称</param>270
/// <param name="DbType">参数类型</param>271
/// <param name="Size">参数大小</param>272
/// <returns>新的 parameter 对象</returns>273
public SqlParameter CreateReturnParam(string ParamName, SqlDbType DbType, int Size) 274

{275

/**////创建返回类型的参数276
return CreateParam(ParamName, DbType, Size, ParameterDirection.ReturnValue, null);277
} 278
#endregion279

280
public void ExcuteSQL(string sql)281

{282
SqlCommand sqlCom=new SqlCommand(sql,sqlCon);283
Open();284
sqlCom.ExecuteNonQuery();285
}286
public int ExcuteScalar(string sql)287

{288
Open();289
SqlCommand sqlCom=new SqlCommand(sql,sqlCon);290
return Convert.ToInt32(sqlCom.ExecuteScalar());291
}292

293
public DataSet ExcuteQuery(string sql)294

{295
DataSet ds=new DataSet();296
SqlDataAdapter sqlDa=new SqlDataAdapter(sql,sqlCon);297
sqlDa.SelectCommand.Connection.Open();298
sqlDa.Fill(ds);299
return(ds);300
}301
}302
}303


浙公网安备 33010602011771号