我的数据访问类(第二版)—— for .net2.0 (二)

下面写一下相对来说不变的地方

SQL语句部分,改成了静态函数的形式。

  1using System;
  2using System.Collections.Generic;
  3using System.Text;
  4using System.Data;
  5using System.Data.Common;
  6using System.Data.SqlClient;
  7using JYK;
  8
  9namespace JYK.DataAccessLibrary
 10{
 11    //DataAccessLibrary 数据访问库
 12   
 13    public class DAL
 14    {
 15       
 16        //查询语句部分
 17        运行查询语句返回记录(DataSet、DataTable、DataRow、String[]、String)#region 运行查询语句返回记录(DataSet、DataTable、DataRow、String[]、String)
 18
 19        public static DataSet RunSqlDataSet(string sql)
 20        {
 21            string msg = "";
 22            return RunSqlDataSet(sql, out msg);
 23        }
 24
 25        /**//// <summary>
 26        /// 运行SQL查询语句 返回DataSet。可以传入多条查询语句,返回的DataSet里会有多个DataTable
 27        /// </summary>
 28        /// <param name="SQL">查询语句。比如select * from tableName</param>
 29        /// <returns>返回DataSet</returns>
 30        函数实现 — — RunSqlDataSet#region 函数实现 — — RunSqlDataSet
 31        public static DataSet RunSqlDataSet(string sql,out string ErrorMsg)
 32        {
 33            ErrorMsg = "";
 34            //设置DataAdapter 
 35            DbDataAdapter da = Factory.CreateDataAdapter(sql);
 36            try
 37            {
 38                DataSet DS = new DataSet();
 39                da.Fill(DS);
 40                return DS;
 41            }
 42            catch (Exception ex)
 43            {
 44                WriteLog.SetErrorMsg("RunSqlDataSet", sql, ex.Message);    //处理错误
 45                ErrorMsg = ex.Message + "<BR>RunSqlDataSet_SQL:" + sql;
 46                return null;
 47            }
 48            finally
 49            {
 50                //关闭数据库,销毁实例
 51                Factory.DbDataAdapterDispose(da);
 52                
 53            }
 54        }
 55        #endregion
 56
 57
 58        public static DataTable RunSqlDataTable(string sql)
 59        {
 60            string msg = "";
 61            return RunSqlDataTable(sql, out msg);
 62       
 63        }
 64
 65        /**//// <summary>
 66        /// 运行SQL查询语句 返回DataTable。
 67        /// </summary>
 68        /// <param name="SQL">查询语句。比如select * from tableName</param>
 69        /// <returns>返回DataTable</returns>
 70        函数实现 — — RunSqlDataTable#region 函数实现 — — RunSqlDataTable
 71        public static DataTable RunSqlDataTable(string sql, out string ErrorMsg)
 72        {
 73            ErrorMsg = "";
 74            //设置DataAdapter 
 75            DbDataAdapter da = Factory.CreateDataAdapter(sql);
 76            try
 77            {
 78                DataTable DT = new DataTable();
 79                da.Fill(DT);
 80                return DT;
 81            }
 82            catch (Exception ex)
 83            {
 84                WriteLog.SetErrorMsg("RunSqlDataTable", sql, ex.Message);    //处理错误
 85                ErrorMsg = ex.Message + "<BR>RunSqlDataSet_SQL:" + sql;
 86                return null;
 87            }
 88            finally
 89            {
 90                //关闭数据库,销毁实例
 91                Factory.DbDataAdapterDispose(da);
 92            }
 93        }
 94        #endregion
 95
 96
 97        /**//// <summary>
 98        /// 运行SQl语句返回第一条记录。返回DataRow
 99        /// </summary>
100        /// <param name="SQL">查询语句。比如select * from tableName</param>
101        /// <returns></returns>
102        函数实现 — — RunSqlDataRow#region 函数实现 — — RunSqlDataRow
103        public static DataRow RunSqlDataRow(string sql)
104        {
105            //设置DataAdapter 
106            DbDataAdapter da = Factory.CreateDataAdapter(sql);
107            try
108            {
109                DataTable DT = new DataTable();
110                da.Fill(DT);
111                if (DT.Rows.Count > 0)
112                    return DT.Rows[0];
113                else
114                    return null;
115            }
116            catch (Exception ex)
117            {
118                WriteLog.SetErrorMsg("RunSqlDataRow", sql, ex.Message);    //处理错误
119                return null;
120            }
121            finally
122            {
123                //关闭数据库,销毁实例
124                Factory.DbDataAdapterDispose(da);
125            }
126
127        }
128        #endregion
129
130
131        /**//// <summary>
132        /// 运行SQl语句返回第一条记录的数组。返回字符串数组
133        /// </summary>
134        /// <param name="SQL">查询语句。比如select top 1 * from tableName</param>
135        /// <returns></returns>
136        函数实现 — — RunSqlStrings#region 函数实现 — — RunSqlStrings
137        public static string[] RunSqlStrings(string sql)
138        {
139            //传入查询语句,返回第一条记录的字符串数组
140            //设置command
141            DbCommand cm = Factory.CreateCommand(sql);
142            
143            try
144            {
145                cm.Connection.Open();
146
147                DbDataReader r = cm.ExecuteReader(CommandBehavior.SingleRow);
148                if (r.Read())
149                {
150                    int ArrLength = r.FieldCount;
151
152                    string[] strValue = new string[ArrLength];
153                    for (int i = 0; i < ArrLength; i++)
154                        strValue[i] = r.GetValue(i).ToString();
155                    return strValue;
156                }
157                else
158                {
159                    r.Close();
160                    return null;
161                }
162            }
163            catch (Exception ex)
164            {
165                WriteLog.SetErrorMsg("RunSqlStrings", sql, ex.Message);    //处理错误
166                return null;
167            }
168            finally
169            {
170                cm.Connection.Close();
171                cm.Connection.Dispose();
172                cm.Dispose();
173
174            }
175        }
176        #endregion
177
178        /**//// <summary>
179        /// 运行SQl语句返回每一条记录的第一个字段的数组。返回字符串数组
180        /// </summary>
181        /// <param name="SQL">查询语句。比如select myName from tableName</param>
182        /// <returns></returns>
183        函数实现 — — RunSqlStringsByRow#region 函数实现 — — RunSqlStringsByRow
184        public static string[] RunSqlStringsByRow(string sql)
185        {
186
187            //传入查询语句,每一条记录的第一个字段的数组。返回字符串数组
188            //设置command
189            DbCommand cm = Factory.CreateCommand(sql);
190            
191            try
192            {
193                cm.Connection.Open();
194
195                DbDataReader r = cm.ExecuteReader();
196                
197                System.Collections.Generic.List<string> list = new List<string>();
198                while (r.Read())
199                    list.Add(r[0].ToString());
200
201                return list.ToArray();
202
203            }
204            catch (Exception ex)
205            {
206                WriteLog.SetErrorMsg("RunSqlStringsByRow", sql, ex.Message);    //处理错误
207                return null;
208            }
209            finally
210            {
211                cm.Connection.Close();
212                cm.Connection.Dispose();
213                cm.Dispose();
214                
215            }
216        }
217        #endregion
218
219        /**//// <summary>
220        /// 运行SQl语句返回第一条记录的第一列的值。
221        /// </summary>
222        /// <param name="SQL">查询语句。比如select top 1 ID from tableName where userName='aa'。会返回ID的内容</param>
223        /// <returns></returns>
224        函数实现 — — RunSqlGetID#region 函数实现 — — RunSqlGetID
225        public static string RunSqlGetID(string sql)
226        {
227            //设置command
228            DbCommand cm = Factory.CreateCommand(sql);
229           
230            try
231            {
232                cm.Connection.Open();
233
234                DbDataReader r = cm.ExecuteReader(CommandBehavior.SingleRow);
235                if (r.Read())
236                    return r.GetValue(0).ToString();
237                else
238                    return null;
239            }
240            catch (Exception ex)
241            {
242                WriteLog.SetErrorMsg("RunSqlGetID", sql, ex.Message);    //处理错误
243                return null;
244            }
245            finally
246            {
247                cm.Connection.Close();
248                cm.Connection.Dispose();
249                cm.Dispose();
250            }
251        }
252        #endregion
253
254        #endregion
255
256        运行查询语句不返回记录集(无返回记录、检查持否存在指定的记录)#region 运行查询语句不返回记录集(无返回记录、检查持否存在指定的记录)
257        /**//// <summary>
258        /// 运行SQL查询语句,不返回记录集。用于添加、修改、删除等操作
259        /// </summary>
260        /// <param name="SQL">查询语句。比如insert into tableName 、update tableName</param>
261        /// <returns></returns>
262        函数实现 — — RunSql#region 函数实现 — — RunSql
263        public static void RunSql(string sql)
264        {
265            //设置command
266            DbCommand cm = Factory.CreateCommand(sql);
267           
268            try
269            {
270                cm.Connection.Open();
271                cm.ExecuteNonQuery();
272            }
273            catch (Exception ex)
274            {
275                WriteLog.SetErrorMsg("RunSql", sql, ex.Message);    //处理错误
276            }
277            finally
278            {
279                cm.Connection.Close();
280                cm.Connection.Dispose();
281                cm.Dispose();
282            }
283        }
284        #endregion
285
286
287        /**//// <summary>
288        /// 执行一条SQL语句,看是否能查到记录 有:返回true;没有返回false,用于判断是否重名
289        /// </summary>
290        /// <param name="SQL">查询语句。比如select ID from tableName where userName='aa'</param>
291        /// <returns></returns>
292        函数实现 — — RunSqlExists#region 函数实现 — — RunSqlExists
293        public static bool RunSqlExists(string sql)
294        {
295            //设置command
296            DbCommand cm = Factory.CreateCommand(sql);
297           
298            try
299            {
300                if (cm.Connection.State == ConnectionState.Broken || cm.Connection.State == ConnectionState.Closed)
301                    cm.Connection.Open();
302
303                DbDataReader r = cm.ExecuteReader(CommandBehavior.CloseConnection);
304                if (r.HasRows)
305                    return true;
306                else
307                    return false;
308            }
309            catch (Exception ex)
310            {
311                WriteLog.SetErrorMsg("RunSqlDataSet", sql, ex.Message);    //处理错误
312                return true;
313            }
314            finally
315            {
316                cm.Connection.Close();
317                cm.Connection.Dispose();
318                cm.Dispose();
319            }
320        }
321        #endregion
322
323        #endregion
324
325        查询语句的方式添加、修改数据#region 查询语句的方式添加、修改数据
326
327        /**//// <summary>
328        /// 添加记录。传入表名,字段数组,值数组,返回新生成记录的ID
329        /// </summary>
330        /// <param name="TableName">要添加记录的表的名称</param>
331        /// <param name="ziduan">字段名数组</param>
332        /// <param name="msg">字段对应的值的数组</param>
333        /// <returns></returns>
334        public static string InsertDataStr(string TableName, string[] columns, string[] msg)
335        {
336            //添加数据    返回新添加的ID
337            System.Text.StringBuilder SQL = new System.Text.StringBuilder(300);
338            SQL.Append("insert into ");                    //insert into 
339            SQL.Append(TableName);
340            SQL.Append(" (");
341            int i;
342            for (i = 0; i < columns.Length - 1; i++)        //字段
343            {
344                SQL.Append(columns[i]);
345                SQL.Append(",");
346            }
347            SQL.Append(columns[i]);
348            SQL.Append(")  values ('");
349
350            for (i = 0; i < columns.Length - 1; i++)
351            {
352                SQL.Append(msg[i]);
353                SQL.Append("','");
354            }
355            SQL.Append(msg[i]);
356            if (WebConfig.DataBaseType() == 1)
357                SQL.Append("')  select scope_identity() as a1");
358            else
359                SQL.Append("')");
360
361            string re = RunSqlGetID(SQL.ToString());
362            SQL.Length = 1;
363            if (re == null)
364                return "-1";
365            else
366                return re;
367        }
368
369        /**//// <summary>
370        /// 修改记录。传入表名,字段数组,值数组 
371        /// </summary>
372        /// <param name="TableName">要修改记录的表的名称</param>
373        /// <param name="ziduan">字段名数组</param>
374        /// <param name="msg">字段对应的值的数组</param>
375        /// <param name="tiaojian">条件 ,加在where 后面的语句</param>
376        /// <returns></returns>
377        public static bool UpdateData(string TableName, string[] cloumns, string[] msg, string myWhere)
378        {
379            System.Text.StringBuilder SQL = new System.Text.StringBuilder(300);
380            SQL.Append("update ");                    //update
381            SQL.Append(TableName);
382            SQL.Append(" set ");
383            int i;
384            for (i = 0; i < cloumns.Length - 1; i++)
385            {
386                SQL.Append(cloumns[i]);                    //update
387                SQL.Append("='");
388                SQL.Append(msg[i]);
389                SQL.Append("',");
390            }
391            SQL.Append(cloumns[i]);                    //update
392            SQL.Append("='");
393            SQL.Append(msg[i]);
394            SQL.Append("' where ");
395            SQL.Append(myWhere);
396
397            RunSql(SQL.ToString());
398            return true;
399
400        }
401        #endregion
402
403    }
404}
405

存储过程的代码

  1using System;
  2using System.Collections.Generic;
  3using System.Text;
  4using System.Data;
  5using System.Data.Common;
  6using JYK;
  7
  8
  9namespace JYK.DataAccessLibrary
 10{
 11    public class DataAccessLayerSP
 12    {
 13        属性#region 属性
 14        private static string errorMsg;            //出错信息
 15        private static bool  isShowErrorSQL;    //是否显示出错的查询语句(包括存储过程名程)
 16        private DbCommand cm ;            //建立Command对象
 17        
 18        /**//// <summary>
 19        /// 读取出错信息
 20        /// </summary>
 21        public string ErrorMsg            
 22        {
 23            get{return errorMsg;}
 24        }
 25
 26        /**//// <summary>
 27        /// 修改连接字符串,在同时访问两个或两个以上的数据库的时候使用
 28        /// </summary>
 29        public string cnString            
 30        {
 31            set{cm.Connection.ConnectionString = value;}
 32            get{return cm.Connection.ConnectionString;}
 33        }
 34
 35        /**//// <summary>
 36        /// 释放资源~
 37        /// </summary>
 38        public void Dispose()
 39        {
 40            errorMsg = null;
 41            cm.Parameters.Clear();
 42            cm.Connection.Close();
 43            cm.Connection.Dispose();
 44            cm.Dispose();
 45        }
 46        #endregion
 47
 48        public DataAccessLayerSP()    //构造函数
 49        {
 50            //获取连接字符串
 51            cm = Factory.CreateCommand();
 52            cm.CommandType = CommandType.StoredProcedure;
 53            //初始化错误信息
 54            errorMsg = "";
 55
 56            //本地运行,显示出错的查询语句(包括存储过程名程)
 57            isShowErrorSQL = WebConfig.isShowErrorSQL(); 
 58            
 59        }
 60    
 61        //存储过程的参数部分
 62        存储过程的参数部分——清除和添加参数#region 存储过程的参数部分——清除和添加参数
 63
 64        清除参数#region 清除参数
 65        /**//// <summary>
 66        /// 清除Command的存储过程的参数。
 67        /// </summary>
 68        public void ClearParameter()
 69        {cm.Parameters.Clear();}
 70        #endregion
 71    
 72        //int:        tinyint、smallint
 73        //bigint:
 74        //bool:    bit
 75        //double:    float、real
 76        //string:    char、nchar、varchar、nvarchar、uniqueidentifier、smalldatetime、datetime
 77        //string:    ntext、text
 78
 79        //decimal:从 -10^38 +1 到 10^38 –1 的固定精度和小数位的数字数据。
 80        //numeric:功能上等同于 decimal。
 81        //decimal:    smallmoney、money
 82
 83        //二进制
 84        //            binary、varbinary、image
 85
 86        输入型的参数 int 、double、decimal、nvarChar、、、#region 输入型的参数 int 、double、decimal、nvarChar、、、
 87        int#region int
 88        /**//// <summary>
 89        /// 添加int型的参数。
 90        /// </summary>
 91        /// <param name="ParameterName">参数名称。比如 @UserName</param>
 92        /// <param name="ParameterValue">参数值</param>
 93        public void addNewParameter(string ParameterName,int ParameterValue)
 94        {
 95            ((System.Data.SqlClient.SqlCommand)cm).Parameters.Add(ParameterName,SqlDbType.Int,4);            //添加存储过程的参数
 96            cm.Parameters[ParameterName].Value=ParameterValue;            //负值
 97            //设置方向取默认值——输入
 98        }
 99        #endregion 
100    
101        double#region double
102        /**//// <summary>
103        /// 添加小数参数,double
104        /// </summary>
105        /// <param name="ParameterName">参数名称。比如 @UserName</param>
106        /// <param name="ParameterValue">参数值</param>
107        public void addNewParameter(string ParameterName,double ParameterValue )
108        {
109            ((System.Data.SqlClient.SqlCommand)cm).Parameters.Add(ParameterName, SqlDbType.Float);            //添加存储过程的参数
110            cm.Parameters[ParameterName].Value=ParameterValue;            //负值
111        }
112        #endregion 
113    
114        decimal#region decimal
115        /**//// <summary>
116        /// 添加金额参数,方向是输入(input)。decimal
117        /// </summary>
118        /// <param name="ParameterName">参数名称。比如 @UserName</param>
119        /// <param name="ParameterValue">参数值</param>
120        public void addNewParameter(string ParameterName,decimal ParameterValue )
121        {
122            ((System.Data.SqlClient.SqlCommand)cm).Parameters.Add(ParameterName, SqlDbType.Decimal);            //添加存储过程的参数
123            cm.Parameters[ParameterName].Value=ParameterValue;            //负值
124        }
125        #endregion 
126    
127        nvarChar#region nvarChar
128        /**//// <summary>
129        /// 添加nvarChar型的参数。方向是输入(input)
130        /// </summary>
131        /// <param name="ParameterName">参数名称。比如 @UserName</param>
132        /// <param name="ParameterValue">参数值</param>
133        /// <param name="size">参数大小</param>
134        public void addNewParameter(string ParameterName,string ParameterValue,int size)
135        {
136            ((System.Data.SqlClient.SqlCommand)cm).Parameters.Add(ParameterName, SqlDbType.NVarChar, size);            //添加存储过程的参数
137            cm.Parameters[ParameterName].Value=ParameterValue;            //负值
138        }
139        #endregion 
140    
141        nText#region nText
142        /**//// <summary>
143        /// 添加nText型的参数。方向是输入(input)
144        /// </summary>
145        /// <param name="ParameterName">参数名称。比如 @UserName</param>
146        /// <param name="ParameterValue">参数值</param>
147        public   void addNewParameter(string ParameterName,string ParameterValue)
148        {
149            ((System.Data.SqlClient.SqlCommand)cm).Parameters.Add(ParameterName, SqlDbType.NText);            //添加存储过程的参数
150            cm.Parameters[ParameterName].Value=ParameterValue;            //负值
151        }
152
153        #endregion 
154    
155        bit#region bit
156        /**//// <summary>
157        /// 添加bit型的参数。方向是输入(input)
158        /// </summary>
159        /// <param name="ParameterName">参数名称。比如 @UserName</param>
160        /// <param name="ParameterValue">参数值</param>
161        public   void addNewParameter(string ParameterName,bool ParameterValue)
162        {
163            ((System.Data.SqlClient.SqlCommand)cm).Parameters.Add(ParameterName, SqlDbType.Bit);            //添加存储过程的参数
164            cm.Parameters[ParameterName].Value=ParameterValue;            //负值
165        }
166        #endregion 
167    
168        #endregion
169
170        输出型的参数#region 输出型的参数 
171        
172        /**//// <summary>
173        /// 添加输出型的参数。只支持常用的几个参数类型,如果需要可以扩充。
174        /// </summary>
175        /// <param name="ParameterName">参数名称。比如 @UserName</param>
176        /// <param name="ParameterValue">参数的类型</param>
177        public void addNewParameter(string ParameterName,JYK.ParameterKind kind)
178        {
179            switch(kind)
180            {
181                case ParameterKind.Int :
182                    ((System.Data.SqlClient.SqlCommand)cm).Parameters.Add(ParameterName, SqlDbType.Int);            //添加存储过程的参数
183                    break;
184                case ParameterKind.Double:
185                    ((System.Data.SqlClient.SqlCommand)cm).Parameters.Add(ParameterName, SqlDbType.Float);            //添加存储过程的参数
186                    break;
187                case ParameterKind.Decimal :
188                    ((System.Data.SqlClient.SqlCommand)cm).Parameters.Add(ParameterName, SqlDbType.Decimal);            //添加存储过程的参数
189                    break;
190                case ParameterKind.NVarChar :
191                    ((System.Data.SqlClient.SqlCommand)cm).Parameters.Add(ParameterName, SqlDbType.NVarChar, 4000);            //添加存储过程的参数
192                    break;
193                case ParameterKind.Bit :
194                    ((System.Data.SqlClient.SqlCommand)cm).Parameters.Add(ParameterName, SqlDbType.Bit);            //添加存储过程的参数
195                    break;
196            }
197            cm.Parameters[ParameterName].Direction=    ParameterDirection.Output;        //设置方向
198        }
199        
200        #endregion
201
202        #endregion
203
204        存储过程的参数部分——取参数的返回值#region 存储过程的参数部分——取参数的返回值
205
206        /**//// <summary>
207        /// 按序号返回参数值,一般在执行完存储过程后使用
208        /// </summary>
209        /// <param name="ParameterIndex">序号</param>
210        /// <returns>返回参数的内容</returns>
211        public string this[int ParameterIndex]
212        {
213            get {return cm.Parameters[ParameterIndex].Value.ToString(); }
214        }
215
216        /**//// <summary>
217        /// 按名称返回参数值,一般在执行完存储过程后使用
218        /// </summary>
219        /// <param name="ParameterName">参数名称。比如 @UserName</param>
220        /// <returns>返回参数的内容</returns>
221        public string this[string ParameterName]
222        {
223            get {return cm.Parameters[ParameterName].Value.ToString(); }
224        }
225        #endregion
226
227        存储过程的参数部分——修改参数值#region 存储过程的参数部分——修改参数值
228        /**//// <summary>
229        /// 按序号修改参数值,一般在一次添加多条记录时用。
230        /// </summary>
231        /// <param name="ParameterIndex">序号</param>
232        public void setParameter(int ParameterIndex,string parameterValue)
233        {    cm.Parameters[ParameterIndex].Value = parameterValue;}
234
235        /**//// <summary>
236        /// 按名称修改参数值,一般在一次添加多条记录时用
237        /// </summary>
238        /// <param name="ParameterName">参数名称。比如 @UserName</param>
239        public void setParameter(string ParameterName,string parameterValue)
240        {    cm.Parameters[ParameterName].Value = parameterValue;}
241        #endregion
242
243        //存储过程部分
244        运行存储过程返回记录(DataSet、DataTable、不返回记录集)#region 运行存储过程返回记录(DataSet、DataTable、不返回记录集)
245
246        /**//// <summary>
247        /// 运行存储过程返回DataSet。DataSet里面可以是多个表(DateTable)
248        /// </summary>
249        /// <param name="StoredProcedureName">存储过程名称</param>
250        /// <returns>返回DataSet</returns>
251        函数实现 — — RunStoreDataSet#region 函数实现 — — RunStoreDataSet
252        public DataSet RunStoreDataSet(string StoredProcedureName)
253        {
254            DbDataAdapter da = Factory.CreateDataAdapter(StoredProcedureName);
255            da.SelectCommand.CommandType = CommandType.StoredProcedure;
256            try
257            {
258                DataSet DS = new DataSet();
259                da.Fill(DS);
260                return DS;
261            }
262            catch(Exception ex)
263            {
264                WriteLog.SetErrorMsg("RunStoreDataSet", StoredProcedureName, ex.Message);    //处理错误
265                return null;
266            }
267            finally
268            {
269                da.Dispose();
270            }
271        }
272        #endregion
273
274        /**//// <summary>
275        /// 运行存储过程返回DataTable。
276        /// </summary>
277        /// <param name="StoredProcedureName">存储过程名称</param>
278        /// <returns>返回DataTable</returns>
279        函数实现 — — RunStoreDataTable#region 函数实现 — — RunStoreDataTable
280        public DataTable RunStoreDataTable(string StoredProcedureName)
281        {
282            DbDataAdapter da = Factory.CreateDataAdapter(StoredProcedureName);
283            da.SelectCommand.CommandType = CommandType.StoredProcedure;
284            try
285            {
286                DataTable dt = new DataTable();
287                da.Fill(dt);
288                return dt;
289            }
290            catch(Exception ex)
291            {
292                WriteLog.SetErrorMsg("RunStoreDataTable", StoredProcedureName, ex.Message);    //处理错误
293                return null;
294            }
295            finally
296            {
297                da.Dispose();
298            }
299        }
300        #endregion
301        
302        /**//// <summary>
303        /// 运行存储过程 不返回记录集,用于添加、修改、删除等操作
304        /// </summary>
305        /// <param name="ParameterName">存储过程名称</param>
306        /// <returns></returns>
307        public void RunStore(string StoredProcedureName)
308        {
309            DbCommand cm = Factory.CreateCommand(StoredProcedureName);
310            cm.CommandText = StoredProcedureName;//设置command
311            try
312            {
313                if (cm.Connection.State == ConnectionState.Broken || cm.Connection.State == ConnectionState.Closed )
314                    cm.Connection.Open();
315                cm.ExecuteNonQuery();
316            }
317            catch(Exception ex)
318            {
319                WriteLog.SetErrorMsg("RunStore", StoredProcedureName, ex.Message);    //处理错误
320            }
321            finally
322            {
323                cm.Connection.Close();
324            }
325        }
326        #endregion
327    }
328}

这里没有使用静态函数的方式,目的是为了方便添加存储过程的参数。

时间: 2024-07-31 06:57:13

我的数据访问类(第二版)—— for .net2.0 (二)的相关文章

数据访问函数库 for ado.net2.0

前言 源代码和调用演示下载:http://www.cnblogs.com/jyk/archive/2008/04/25/1170979.html 数据访问函数库for ado.net 1.1 的说明:http://www.cnblogs.com/jyk/category/67121.html 由于一直在使用vs2003开发,所以自己使用的数据访问函数库(以下简称:访问库)也就一直没有能够考虑到ado.net2.0.虽然ado.net2.0在调用的时候没有什么变化,但是内部结构却发生了不小的变化,

我的数据访问类(第二版)—— for .net2.0 (一)

asp.net2.0已经出来好久了,由于许多的原因一直没有使用,一个月前才开始使用VS2005写东西. 这一个月里又重新学习了一下基础知识,比如多态.接口了什么的. 既然已经到了2.0了嘛,那么以前的数据访问的方式要不要变一下呢?简单看了一下,感觉还是我的那种方式好,至少时我已经用习惯了.那么用.net2.0的方法重写一遍吧. 看了一下Framework 2.0的代码,发现一个问题.虽然表面上ADO.NET的使用没有什么变化(加了一些功能,原来由的功能没有变),但是内部实现有比较大的变化,原来的

Access 通用数据访问类(asp.net 2.0 c#)

access|asp.net|访问|数据 仿照以前收集的一个经典sql server数据访问类,稍做修改.using System;using System.Data;using System.Configuration;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;usi

中小系统.net DataAccess数据访问类

access|访问|数据   #region 引用对象 using System;using System.Xml ;using System.Data;using System.Data.SqlClient;using System.Web; #endregionnamespace SysClassLibrary{ /// <summary> /// DataAccess 的摘要说明. /// <author>wuchen</author> /// <date&

ASP.NET 数据访问类

asp.net|访问|数据 using System;using System.Data;using System.Data.SqlClient; namespace SysClassLibrary{ /// <summary> /// DataAccess 的摘要说明. /// <description>数据处理基类,调用方式:DataAccess.DataSet((string)sqlstr);或者DataAccess.DataSet((string)sqlstr,ref Da

C#数据访问类

访问|数据 public class operateDB { private static string conStr; public static OleDbConnection cnn; OleDbDataAdapter da; OleDbCommandBuilder cb; OleDbCommand cmd; //构造函数 #region initialize public operateDB() { // // TODO: 在此处添加构造函数逻辑 // cnn=new OleDbConn

数据源ObjectDataSource的数据访问类的编写

以下面这张表为例,编写ObjectDataSource的操作类文件:数据表结构如下: 其基本思路是:用User.cs类,包装数据表的各个字段,将User的字段都聚合在一个User对象,然后增.删.改. using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.We

ASP.NET 数据访问类_实用技巧

using System; using System.Data; using System.Data.SqlClient;  namespace SysClassLibrary { /// <summary> /// DataAccess 的摘要说明. /// <description>数据处理基类,调用方式:DataAccess.DataSet((string)sqlstr);或者DataAccess.DataSet((string)sqlstr,ref DataSet ds);

第十五章-数据访问部件的应用及编程(二)(3)

15.4.2.2 查找数据库表中的记录 如果想查找数据库表中的记录,必须想指定查找记录的一些字段的字段值,然后在表中进行检索,检索出与查找值相匹配的记录来.如果我们是在Paradox或dBASE数据库中的表中查找记录,那么查找值所对应的字段必须是表中的关键字段或辅助索引字段.如果查找SQL数据库服务器中的表,那么查找值必须是表的IndexFieldNames属性中指定的字段. Delphi提供了两种方式在数据库表中查找记录:Goto方式和Find方式.这两种方式十分相似,它们的主要区别在于为查找