/// <summary> /// 执行存储过程并返回结果集 /// </summary> /// <param>存储过程名</param> /// <returns>DataSet</returns> public DataSet RunProcedure(string storedProcName) { DataSet ds = new DataSet(); try { this.Open(); cmd.CommandText = storedProcName; cmd.CommandType = CommandType.StoredProcedure; Adapter.SelectCommand = cmd; //Adapter.SelectCommand.CommandTimeout = 1200;//可以设置适当的超时时间(秒),避免选择时间段过大导致填充数据集超时 Adapter.Fill(ds); } catch (Exception ex) { throw ex; } finally { this.Close(); } return ds; } /// <summary> /// 执行存储过程,方法不返回结果集 /// </summary> /// <param></param> public void RunVoidProcedure(string storedProcName) { cmd.CommandText = storedProcName; cmd.CommandType = CommandType.StoredProcedure; try { this.Open(); cmd.ExecuteNonQuery(); } catch (Exception ex) { throw ex; } finally { this.Close(); } }
下面说两个反射方法,测试之后为了方便调用,减少操作添加的,一个是把实体类的属性转换为参数,另一个是把从数据库取出的某条记录转换为实体类,这两个还是非常有用,尤其是在系统开发时调用比较方便,以前我是见到反射就绕道走的,这次算是第一次用反射,发现确实是很方便。如下:
复制代码 代码如下: /// <summary> /// 将实体类的属性进行参数转换(ORACLE测试通不过,必须要求所有参数都包含在语句中才行) /// </summary> /// <param></param> /// <param></param> //public void ConvertToParameters(object model, DbParameterCollection ParaCollect) //{ // Type T = model.GetType(); // PropertyInfo[] propert = T.GetProperties(); // for (int i = 0; i < propert.Length; i++) // { // AddParam(propert[i].Name, propert[i].GetValue(model, null), ParaCollect); // } / (编辑:PHP编程网 - 黄冈站长网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|