csharp: Procedure with DAO(Data Access Object) and DAL(Data Access Layer)
Posted ®Geovin Du Dream Park™
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了csharp: Procedure with DAO(Data Access Object) and DAL(Data Access Layer)相关的知识,希望对你有一定的参考价值。
sql script code:
CREATE TABLE DuCardType ( CardTypeId INT IDENTITY(1,1) PRIMARY KEY, CardTypeName NVARCHAR(100) NOT NULL, --卡类名称 CardTypeColor NVARCHAR(50) NOT NULL --卡颜色(或样本) ) GO IF EXISTS (SELECT * FROM sysobjects WHERE [name] = ‘proc_Insert_DuCardType‘) DROP PROCEDURE proc_Insert_DuCardType GO CREATE PROCEDURE proc_Insert_DuCardType ( @CardTypeName NVarChar(200), @CardTypeColor NVarChar(100) ) AS IF NOT EXISTS (SELECT * FROM DuCardType WHERE [CardTypeName][email protected]) BEGIN INSERT INTO DuCardType ( [CardTypeName] , [CardTypeColor] ) VALUES ( @CardTypeName , @CardTypeColor ) END GO IF EXISTS (SELECT * FROM sysobjects WHERE [name] = ‘proc_Insert_DuCardTypeOutput‘) DROP PROCEDURE proc_Insert_DuCardTypeOutput GO CREATE PROCEDURE proc_Insert_DuCardTypeOutput ( @CardTypeName NVarChar(200), @CardTypeColor NVarChar(100), @CardTypeId int output ) AS IF NOT EXISTS (SELECT * FROM DuCardType WHERE [CardTypeName][email protected]) BEGIN INSERT INTO DuCardType ( [CardTypeName] , [CardTypeColor] ) VALUES ( @CardTypeName , @CardTypeColor ) select @[email protected]@IDENTITY END GO IF EXISTS (SELECT * FROM sysobjects WHERE [name] = ‘proc_Update_DuCardType‘) DROP PROCEDURE proc_Update_DuCardType GO CREATE PROCEDURE proc_Update_DuCardType ( @CardTypeId Int, @CardTypeName NVarChar(200), @CardTypeColor NVarChar(100) ) AS IF NOT EXISTS (SELECT * FROM DuCardType WHERE [CardTypeName][email protected]) BEGIN UPDATE DuCardType SET [CardTypeName][email protected] , [CardTypeColor][email protected] where [CardTypeId][email protected] END GO IF EXISTS (SELECT * FROM sysobjects WHERE [name] = ‘proc_Update_DuCardTypeField‘) DROP PROCEDURE proc_Update_DuCardTypeField GO CREATE PROCEDURE proc_Update_DuCardTypeField ( @CardTypeId Int, @FieldValue NVARCHAR(1500) ) AS DECLARE @sql NVARCHAR(4000) SET @sql=‘update DuCardType set ‘[email protected]+‘ WHERE CardTypeId =‘+ @CardTypeId EXEC(@sql) GO IF EXISTS (select * from sysobjects where [name] = ‘proc_Delete_DuCardType‘) DROP PROCEDURE proc_Delete_DuCardType GO CREATE PROCEDURE proc_Delete_DuCardType ( @CardTypeId Int ) as DELETE DuCardType WHERE CardTypeId = @CardTypeId GO IF EXISTS (select * from sysobjects where [name] = ‘proc_Delete_DuCardTypeId‘) DROP PROCEDURE proc_Delete_DuCardTypeId GO CREATE PROCEDURE proc_Delete_DuCardTypeId ( @CardTypeId varchar(2000) ) as DECLARE @strsql varchar(3000) SET @strsql=‘DELETE DuCardType WHERE CardTypeId in(‘[email protected]+‘)‘ EXEC(@strsql) GO IF EXISTS (SELECT * FROM sysobjects WHERE [name] = ‘proc_Select_DuCardType‘) DROP PROCEDURE proc_Select_DuCardType GO CREATE PROCEDURE proc_Select_DuCardType ( @CardTypeId Int ) AS SELECT * FROM DuCardType WHERE CardTypeId = @CardTypeId GO IF EXISTS (SELECT * FROM sysobjects WHERE [name] = ‘proc_Select_DuCardTypeExists‘) DROP PROCEDURE proc_Select_DuCardTypeExists GO CREATE PROCEDURE proc_Select_DuCardTypeExists ( @CardTypeId Int ) AS SELECT count(1) as H FROM DuCardType WHERE CardTypeId = @CardTypeId GO IF EXISTS (SELECT * FROM sysobjects WHERE [name] = ‘proc_Select_DuCardTypeCount‘) DROP PROCEDURE proc_Select_DuCardTypeCount GO CREATE PROCEDURE proc_Select_DuCardTypeCount ( @where NVARCHAR(1000) ) AS DECLARE @sql NVARCHAR(4000) SET @sql=‘select count(*) as H from DuCardType ‘ IF @where<>‘‘ SET @[email protected][email protected] EXEC(@sql) GO IF EXISTS (SELECT * FROM sysobjects WHERE [name] = ‘proc_Select_DuCardTypeTitle‘) DROP PROCEDURE proc_Select_DuCardTypeTitle GO CREATE PROCEDURE proc_Select_DuCardTypeTitle ( @FieldName NVARCHAR(100), @CardTypeId Int ) AS DECLARE @sql NVARCHAR(4000) SET @sql=‘select top 1 ‘[email protected]+‘ from DuCardType WHERE CardTypeId =‘+ CAST(@CardTypeId AS VARCHAR(50)) EXEC(@sql) GO IF EXISTS (SELECT * FROM sysobjects WHERE [name] = ‘proc_Select_DuCardTypeFuzzySearch‘) DROP PROCEDURE proc_Select_DuCardTypeFuzzySearch GO CREATE PROCEDURE proc_Select_DuCardTypeFuzzySearch ( @FieldList NVARCHAR(1000), @where NVARCHAR(2000) ) AS DECLARE @sql NVARCHAR(4000) IF(@where<>‘‘) SET @where=‘ WHERE ‘[email protected] IF(@FieldList=‘‘) SET @FieldList=‘ * ‘ SET @sql=‘select ‘[email protected]+‘ from DuCardType ‘[email protected] EXEC(@sql) GO IF EXISTS (SELECT * FROM sysobjects WHERE [name] = ‘proc_Select_DuCardTypeAll‘) DROP PROCEDURE proc_Select_DuCardTypeAll GO CREATE PROCEDURE proc_Select_DuCardTypeAll AS SELECT * FROM DuCardType GO
DAL
///<summary> /// 追加记录 ///</summary> ///<param name="DuCardType">输入参数:DuCardTypeInfo</param> ///<returns>返回添加的记录条数</returns> public int InsertDuCardType(DuCardTypeInfo duCardType) { int ret = 0; try { SqlParameter[] par = new SqlParameter[]{ new SqlParameter("@CardTypeName",SqlDbType.NVarChar,200), new SqlParameter("@CardTypeColor",SqlDbType.NVarChar,100), }; par[0].Value = duCardType.CardTypeName; par[1].Value = duCardType.CardTypeColor; ret = DBHelper.ExecuteSql("proc_Insert_DuCardType", CommandType.StoredProcedure, par); } catch (SqlException ex) { throw ex; } return ret; } ///<summary> /// 追加记录返回值 ///</summary> ///<param name="DuCardType">输入参数:DuCardTypeInfo</param> ///<param name="CardTypeId">返回参数:CardTypeId</param> ///<returns>返回是否添加的个数</returns> public int InsertDuCardTypeOutput (DuCardTypeInfo duCardType,out int cardTypeId) { int ret = 0; cardTypeId= 0; try { SqlParameter[] par = new SqlParameter[]{ new SqlParameter("@CardTypeName",SqlDbType.NVarChar,200), new SqlParameter("@CardTypeColor",SqlDbType.NVarChar,100), new SqlParameter("@CardTypeId",SqlDbType.Int,8), }; par[0].Value = duCardType.CardTypeName; par[1].Value = duCardType.CardTypeColor; par[2].Direction = ParameterDirection.Output; ret = DBHelper.ExecuteSql("proc_Insert_DuCardTypeOutput", CommandType.StoredProcedure, par); if(ret>0) { cardTypeId=(int)par[2].Value; } } catch (SqlException ex) { throw ex; } return ret; } ///<summary> ///修改记录 ///</summary> ///<param name="DuCardType">输入参数:DuCardTypeInfo</param> ///<returns>返回修改的多少记录数</returns> public int UpdateDuCardType(DuCardTypeInfo duCardType) { int ret = 0; try { SqlParameter[] par = new SqlParameter[]{ new SqlParameter("@CardTypeId",SqlDbType.Int,4), new SqlParameter("@CardTypeName",SqlDbType.NVarChar,200), new SqlParameter("@CardTypeColor",SqlDbType.NVarChar,100), }; par[0].Value = duCardType.CardTypeId; par[1].Value = duCardType.CardTypeName; par[2].Value = duCardType.CardTypeColor; ret = DBHelper.ExecuteSql("proc_Update_DuCardType", CommandType.StoredProcedure, par); } catch (SqlException ex) { throw ex; } return ret; } ///<summary> /// 删除记录 ///</summary> ///<param name="cardTypeId">输入参数:CardTypeId</param> ///<returns>返回删除记录条数</returns> public bool DeleteDuCardType(int cardTypeId) { bool ret = false; try { SqlParameter par =new SqlParameter("@CardTypeId",cardTypeId); int temp = 0 ; temp = DBHelper.ExecuteSql("proc_Delete_DuCardType", CommandType.StoredProcedure, par); if(temp!=0) { ret = true; } } catch (SqlException ex) { throw ex; } return ret; } ///<summary> /// 删除多条记录 ///</summary> ///<param name="cardTypeId">输入参数:CardTypeId</param> ///<returns>返回删除多少记录</returns> public bool DeleteDuCardTypeId(string cardTypeId) { bool ret = false; try { SqlParameter par =new SqlParameter("@CardTypeId",cardTypeId); int temp = 0 ; temp = DBHelper.ExecuteSql("proc_Delete_DuCardTypeId", CommandType.StoredProcedure, par); if(temp!=0) { ret = true; } } catch (SqlException ex) { throw ex; } return ret; } ///<summary> /// 查询记录 ///</summary> ///<param name="cardTypeId">输入参数:CardTypeId</param> ///<returns>返回DuCardTypeInfo</returns> public DuCardTypeInfo SelectDuCardType(int cardTypeId) { DuCardTypeInfo duCardType = null; try { SqlParameter par =new SqlParameter("@CardTypeId",cardTypeId); using (SqlDataReader reader = DBHelper.GetReader("proc_Select_DuCardType", CommandType.StoredProcedure, par)) { if (reader.Read()) { duCardType = new DuCardTypeInfo(); duCardType.CardTypeId =(!DBNull.Equals(reader["CardTypeId"],null))? (int) reader["CardTypeId"]:0; duCardType.CardTypeName =(!DBNull.Equals(reader["CardTypeName"],null))? (string) reader["CardTypeName"].ToString():""; duCardType.CardTypeColor =(!DBNull.Equals(reader["CardTypeColor"],null))? (string) reader["CardTypeColor"].ToString():""; } } } catch (SqlException ex) { throw ex; } return duCardType; } ///<summary> /// 查询所有记录 ///</summary> ///<param name="cardTypeId">无输入参数</param> ///<returns>返回表所有记录(List)DuCardTypeInfo</returns> public List<DuCardTypeInfo> SelectDuCardTypeAll() { List<DuCardTypeInfo> list = new List<DuCardTypeInfo>(); DuCardTypeInfo duCardType = null; try { using (SqlDataReader reader = DBHelper.GetReader("proc_Select_DuCardTypeAll", CommandType.StoredProcedure, null)) { while (reader.Read()) { duCardType = new DuCardTypeInfo(); duCardType.CardTypeId =(!DBNull.Equals(reader["CardTypeId"],null))? (int) reader["CardTypeId"]:0; duCardType.CardTypeName =(!DBNull.Equals(reader["CardTypeName"],null))? (string) reader["CardTypeName"].ToString():""; duCardType.CardTypeColor =(!DBNull.Equals(reader["CardTypeColor"],null))? (string) reader["CardTypeColor"].ToString():""; list.Add(duCardType); } } } catch (SqlException ex) { throw ex; } return list; } ///<summary> /// 查询所有记录 ///</summary> ///<param name="cardTypeId">无输入参数</param> ///<returns>返回(DataTable)DuCardType表所有记录</returns> public DataTable SelectDuCardTypeDataTableAll() { DataTable dt = new DataTable(); try { using (DataTable reader = DBHelper.GetTable("proc_Select_DuCardTypeAll", CommandType.StoredProcedure, null)) { dt = reader; } } catch (SqlException ex) { throw ex; } return dt; } /// <summary> /// SQL script查询分页 /// </summary> /// <param name="pageSize">每页页数</param> /// <param name="currentPage">当前页码</param> /// <param name="strWhere">查询的条件</param> /// <param name="filedOrder">排序字段</param> /// <param name="recordCount">每页的记录数</param> /// <returns></returns> public DataSet GetPageList(int pageSize, int currentPage, string strWhere, string filedOrder, out int recordCount) { int topNum = pageSize * currentPage; StringBuilder strSql = new StringBuilder(); strSql.Append("select * FROM DuCardType"); if (strWhere.Trim() !="") { strSql.Append(" where " + strWhere); } recordCount = Convert.ToInt32(DBHelper.GetSingle(PagingHelper.CreateCountingSql(strSql.ToString()))); return DBHelper.Query(PagingHelper.CreatePagingSql(recordCount, pageSize, currentPage, strSql.ToString(), filedOrder)); } /// <summary> /// 模糊查询 /// </summary> /// <param name="filedlist">显示字段列表</param> /// <param name="strkey">输入的关键字</param> /// <returns></returns> public DataTable GetDataTableDuCardTypeFuzzySearch(string filedlist, string strkey) { DataTable dt = new DataTable(); try { SqlParameter[] par = new SqlParameter[]{ new SqlParameter("@FieldList",SqlDbType.NVarChar,2000),//可以考虑类型 new SqlParameter("@where",SqlDbType.NVarChar,1000), }; par[0].Value = filedlist; par[1].Value = StringConvert.getStrWhere("CardTypeName,CardTypeColor",strkey);//获取字段为字符串的字段列表(varchar,nvarchar,text,ntext) using (DataTable reader = DBHelper.GetTable("proc_Select_DuCardTypeFuzzySearch", CommandType.StoredProcedure, par)) { dt = reader; } } catch (SqlException ex) { throw ex; } return dt; } /// <summary> /// 是否存在该记录 /// </summary> /// <param name="Id"></param> /// <returns></returns> public bool Exists(int Id) { bool isok = false; int count = 0; try { SqlParameter par = new SqlParameter("@Id", Id); using (SqlDataReader reader = DBHelper.GetReader("proc_Select_DuCardTypeExists", CommandType.StoredProcedure, par)) { if (reader.Read()) { count = (!DBNull.Equals(reader["H"], null)) ? (int)reader["H"] : 0; if (count > 0) isok = true; } } } catch (SqlException ex) { throw ex; } return isok; } /// <summary> /// 返回数据总数 /// </summary> /// <param name="strWhere">查询条件</param> /// <returns></returns> public int GetCount(string where) { int count = 0; try { SqlParameter par = new SqlParameter("@where", where); using (SqlDataReader reader = DBHelper.GetReader("proc_Select_DuCardTypeCount", CommandType.StoredProcedure, par)) { if (reader.Read()) { count = (!DBNull.Equals(reader["H"], null)) ? (int)reader["H"] : 0; } } } catch (SqlException ex) { throw ex; } return count; } /// <summary> /// 更新一列数据 /// </summary> /// <param name="Id"></param> /// <param name="strValue">字段名=值</param> /// <returns></returns> public int UpdateField(int Id, string fieldValue) { int ret = 0; try { SqlParameter[] par = new SqlParameter[]{ new SqlParameter("@Id",SqlDbType.Int,4), new SqlParameter("@FieldValue",SqlDbType.NVarChar,2000), }; par[0].Value = Id; par[1].Value = fieldValue; ret = DBHelper.ExecuteSql("proc_Update_DuCardTypeField", CommandType.StoredProcedure, par); } catch (SqlException ex) { throw ex; } return ret; } /// <summary> /// 返回指字字段的字串 /// </summary> /// <param name="Id"></param> /// <param name="fieldName">字段名</param> /// <returns></returns> public string GetTitle(int Id, string fieldName) { string title = string.Empty; try { SqlParameter[] par = new SqlParameter[]{ new SqlParameter("@FieldName",SqlDbType.NVarChar,2000), new SqlParameter("@Id",SqlDbType.Int,4), }; par[0].Value = fieldName; par[1].Value = Id; using (SqlDataReader reader = DBHelper.GetReader("proc_Select_DuConfigTitle", CommandType.StoredProcedure, par)) { title =(!DBNull.Equals(reader[0],null))? (string) reader[0]:""; } } catch (SqlException ex) { throw ex; } return title; } /// <summary> /// 存储过程分页 /// </summary> /// <param name="strwhere">Where条件</param> /// <param name="aecdesc">排序字段</param> /// <param name="pageIndex">开始页码</param> /// <param name="pageSize">每页页数</param> /// <param name="RecordCount">输出总页数</param> /// <returns></returns> public DataTable GetDataPage(string strwhere,string aecdesc, int pageIndex, int pageSize, out int RecordCount) { DataTable dt = new DataTable(); try { SqlParameter[] par = new SqlParameter[]{ new SqlParameter("@Table",SqlDbType.NVarChar,400), //表名 new SqlParameter("@TIndex",SqlDbType.NVarChar,1000),//主键,可以带表头 new SqlParameter("@Column",SqlDbType.NVarChar,200),//读取字段 new SqlParameter("@Sql",SqlDbType.NVarChar,1600),//Where条件 new SqlParameter("@PageIndex",SqlDbType.Int, 8),//开始页码 new SqlParameter("@PageSize",SqlDbType.Int, 8),//页大小 new SqlParameter("@Sort",SqlDbType.NVarChar,1600),//排序字段 }; if (string.IsNullOrEmpty(strwhere)) { strwhere = " 1=1 "; } par[0].Value = "DuCardType"; //表名 par[1].Value = "CardTypeId"; par[2].Value = " * "; par[3].Value = strwhere;//查询条件 par[4].Value = pageIndex; par[5].Value = pageSize; par[6].Value = aecdesc; using (DataTable reader = DBHelper.GetTable("GetPagedRecordFor2005_2008", CommandType.StoredProcedure, par)) { dt = reader; RecordCount = dt.Rows.Count; } } catch (SqlException ex) { RecordCount = 0; throw ex; } return dt; } }
DAO:
///<summary> /// 追加记录 ///</summary> ///<param name="DuCardType">输入参数:DuCardTypeInfo</param> ///<returns>返回添加的记录条数</returns> public int InsertDuCardType(DuCardType duCardType) { int saveid = 0; //DuCardType info = null; NHibernate.ISession session = this.SessionFactory.GetCurrentSession(); ITransaction tran = session.BeginTransaction(); try { if (!object.Equals(session, null)) { //2. session.Save(duCardType); //1 //string sql = @"exec GetDepartmentId @Id=:Id";// @"exec GetDepartmentId :Id"; //IQuery query = session.CreateSQLQuery(sql) //CreateSQLQuery(sql) //GetNamedQuery("GetDepartmentId") // .SetParameter("Id", 1) // .SetResultTransformer( // Transformers.AliasToBean(typeof(DuCardTypeInfo))); //var clients = query.UniqueResult();// query.List<Department>().ToList(); //不能强制转化 //info = (DuCardTypeInfo)clients; //无法将类型为“System.Object[]”的对象强制转换为类型 //关联的数据也查出来了 //string sql = @"exec proc_Insert_DuCardType @CardTypeName = :CardTypeName,@CardTypeColor = :CardTypeColor ";// @"exec GetDepartmentId :Id"; //IQuery query = session.CreateSQLQuery(sql) //CreateSQLQuery(sql) //GetNamedQuery("GetDepartmentId") // .SetParameter("CardTypeName", duCardType.CardTypeName) // .SetParameter("CardTypeColor", duCardType.CardTypeColor) // .SetResultTransformer( // Transformers.AliasToBean(typeof(DuCardType))); //IQuery query = session.CreateSQLQuery(sql) // .SetParameter("CardTypeName", duCardType.CardTypeName) // .SetParameter("CardTypeColor", duCardType.CardTypeColor); //query.SetParameter("CardTypeName", duCardType.CardTypeName, NHibernateUtil.String); //query.SetParameter("CardTypeColor", duCardType.CardTypeColor, NHibernateUtil.String); //query.ExecuteUpdate(); //IQuery query = session.CreateSQLQuery(sql) // .SetString("CardTypeName", duCardType.CardTypeName) // .SetString("CardTypeColor", duCardType.CardTypeColor); //.ExecuteUpdate(); //IQuery query = session.CreateSQLQuery("UPDATE DuCardType as c set c.CardTypeName =?,c.CardTypeColor=? where c.CardTypeId = ? ") // .SetString(0, duCardType.CardTypeName) // .SetString(1, duCardType.CardTypeColor) // .executeUpdate(); // IQuery query = session.CreateSQLQuery(@"insert into DuCardType (CardTypeName, CardTypeColor) // values (:cardTypeName, :cardTypeColor)") // .SetParameter("cardTypeName", duCardType.CardTypeName, NHibernateUtil.String) // .SetParameter("cardTypeColor", duCardType.CardTypeColor, NHibernateUtil.String); // IQuery query = session.CreateSQLQuery(@"insert into DuCardType (CardTypeName, CardTypeColor) vlaues(‘" + duCardType.CardTypeName + "‘,‘" + duCardType.CardTypeColor + "‘)"); //int result = query.ExecuteUpdate(); // saveid = query.ExecuteUpdate(); tran.Commit(); saveid = 1; } } catch (MappingException ex) { saveid = 0; tran.Rollback(); ex.Message.ToString(); } return saveid; //return dal.InsertDuCardType(duCardType); } ///<summary> /// 存储过程追加记录 ///</summary> ///<param name="DuCardType">输入参数:DuCardTypeInfo</param> ///<returns>返回添加的记录条数</returns> public int InsertDuCardTypeProc(DuCardType duCardType) { int ret = 0; try { IDbDataParameter[] par = new SqlParameter[] { new SqlParameter(), new SqlParameter(), }; par[0].ParameterName = "@CardTypeName"; par[0].Value = duCardType.CardTypeName; par[1].ParameterName = "@CardTypeColor"; par[1].Value = duCardType.CardTypeColor; ret = DBHelper.ExecuteNonQuery(SessionFactory, CommandType.StoredProcedure, "proc_Insert_DuCardType", par); } catch (NotImplementedException ex) { ex.Message.ToString(); } return ret; } ///<summary> /// 追加记录返回值 ///</summary> ///<param name="DuCardType">输入参数:DuCardTypeInfo</param> ///<param name="CardTypeId">返回参数:CardTypeId</param> ///<returns>返回是否添加的个数</returns> public int InsertDuCardTypeOutput(DuCardType cardType, out int cardTypeId) { int sid = 1; NHibernate.ISession session = this.SessionFactory.GetCurrentSession(); ITransaction tran = session.BeginTransaction(); try { session.Save(cardType); cardTypeId = cardType.CardTypeId; tran.Commit(); } catch (MappingException ex) { sid = 0; tran.Rollback(); throw ex; } return sid; //return dal.InsertDuCardTypeOutput(duCardType,out cardTypeId); } ///<summary> /// 存储过程追加记录返回值 ///</summary> ///<param name="DuCardType">输入参数:DuCardTypeInfo</param> ///<param name="CardTypeId">返回参数:CardTypeId</param> ///<returns>返回是否添加的个数</returns> public int InsertDuCardTypeOutputProc(DuCardType duCardType, out int cardTypeId) { int rets = 0; cardTypeId = 0; try { IDbDataParameter[] par = new SqlParameter[] { new SqlParameter(), new SqlParameter(), new SqlParameter(), }; par[0].ParameterName = "@CardTypeName"; par[0].Value = duCardType.CardTypeName; par[1].ParameterName = "@CardTypeColor"; par[1].Value = duCardType.CardTypeColor; par[2].ParameterName = "@CardTypeId"; par[2].Size = 10; par[2].DbType = DbType.Int32; par[2].Direction = ParameterDirection.Output; rets = DBHelper.ExecuteNonQuery(SessionFactory, CommandType.StoredProcedure, "proc_Insert_DuCardTypeOutput", par); if (rets > 0) { cardTypeId = int.Parse(par[2].Value.ToString()); } } catch (NotImplementedException ex) { rets = 0; ex.Message.ToString(); } return rets; } ///<summary> ///修改记录 ///</summary> ///<param name="DuCardType">输入参数:DuCardTypeInfo</param> ///<returns>返回修改的多少记录数</returns> public int UpdateDuCardType(DuCardType duCardType) { int sid = 1; NHibernate.ISession session = this.SessionFactory.GetCurrentSession(); ITransaction tran = session.BeginTransaction(); try { session.Update(duCardType); tran.Commit(); } catch (Exception ex) { sid = 0; tran.Rollback(); throw ex; } return sid; //return dal.UpdateDuCardType(duCardType); } ///<summary> ///存储过程修改记录 ///</summary> ///<param name="DuCardType">输入参数:DuCardTypeInfo</param> ///<returns>返回修改的多少记录数</returns> public int UpdateDuCardTypeProc(DuCardType duCardType) { int rets = 0; try { IDbDataParameter[] par = new SqlParameter[] { new SqlParameter(), new SqlParameter(), new SqlParameter(), }; par[0].ParameterName = "@CardTypeId"; par[0].Value = duCardType.CardTypeId; par[1].ParameterName = "@CardTypeName"; par[1].Value = duCardType.CardTypeName; par[2].ParameterName = "@CardTypeColor"; par[2].Value = duCardType.CardTypeColor; rets = DBHelper.ExecuteNonQuery(SessionFactory, CommandType.StoredProcedure, "proc_Update_DuCardType", par); } catch (NotImplementedException ex) { rets = 0; ex.Message.ToString(); } return rets; } /// <summary> /// 查询所有 /// </summary> /// <returns></returns> public IQueryable<DuCardType> GetAllCardTypes() { NHibernate.ISession session = this.SessionFactory.GetCurrentSession(); //if (!object.Equals(session, null)) //{ // string s = ""; //} var query = session.Query<DuCardType>(); var result = from cardType in query orderby cardType.CardTypeName //名字排序 select cardType; return result; } /// <summary> /// Sql查询 /// </summary> /// <param name="id"></param> /// <returns></returns> public IList<DuCardType> CardTypeSql(int id) { NHibernate.ISession session = this.SessionFactory.GetCurrentSession(); IList<DuCardType> card = new List<DuCardType>(); if (!object.Equals(session, null)) { //写法1 //return card = session.CreateQuery("from DuCardType c where c.CardTypeName=‘" + firstname + "‘") // .List<DuCardType>(); //写法2:位置型参数 //card = session.CreateQuery("from DuCardType c where c.CardTypeId=:CardTypeId") // .SetInt32("CardTypeId", id) // .List<DuCardType>(); //写法4. //var sql = "select * from DuCardType"; //var query = session.CreateSQLQuery(sql) //.AddScalar("CardTypeId", NHibernateUtil.Int32) //.AddScalar("CardTypeName", NHibernateUtil.String) //.AddScalar("CardTypeColor", NHibernateUtil.String) //.SetResultTransformer(Transformers.AliasToBean<DuCardType>()); //card = query.List<DuCardType>(); //写法3:命名型参数(推荐) var query = session.CreateSQLQuery("Select * FROM DuCardType where CardTypeId=:CardTypeId") .SetInt32("CardTypeId", id) .SetResultTransformer(Transformers.AliasToBean(typeof(DuCardType))); card = query.List<DuCardType>(); } return card; } /// <summary> /// 存储过程查询 /// </summary> /// <param name="id"></param> /// <returns></returns> public IList<DuCardType> CardTypeProcedures(int id) { //读到数据 IList<DuCardType> li = null; NHibernate.ISession session = this.SessionFactory.GetCurrentSession(); try { IQuery query = session.GetNamedQuery("proc_Select_DuCardType") .SetParameter("CardTypeId", id) .SetResultTransformer( Transformers.AliasToBean(typeof(DuCardType))); li = query.List<DuCardType>(); //var executor = new HibernateStoredProcedureExecutor(session); //var lie = executor.ExecuteStoredProcedure<DuCardType>( // "proc_Select_DuCardType", //find no // new[] // { // new SqlParameter("CardTypeId", id), // //new SqlParameter("startDate", startDate), // // new SqlParameter("endDate", endDate), // }); //li = lie.ToList(); //return li; //string sql = @"exec proc_Select_DuCardType :CardTypeId"; //IQuery query = session.CreateSQLQuery(sql) // .SetInt32("CardTypeId", id); //var list = query.List(); //foreach (object[] item in list) //{ // li = new List<DuCardType>(); // var cardType = new DuCardType(); // cardType.CardTypeId = (int)item[0]; // cardType.CardTypeName = (string)item[1]; // cardType.CardTypeColor = item[2].ToString(); // li.Add(cardType); //} ////query = query.SetResultTransformer(Transformers.AliasToBean<OrderDto>()); ////var list2 = query.List<OrderDto>(); //var result = from cardType in li // orderby cardType.CardTypeName //名字排序 // select cardType; } catch (MappingException ex) { ex.Message.ToString(); } return li; } /// <summary> /// Linq查询 /// </summary> /// <param name="id"></param> /// <returns></returns> public IQueryable<DuCardType> getCardTypeID(int id) { NHibernate.ISession session = this.SessionFactory.GetCurrentSession(); var query = session.Query<DuCardType>(); var result = from cardType in query where cardType.CardTypeId == id select cardType; return result; } ///<summary> /// 删除记录 ///</summary> ///<param name="cardTypeId">输入参数:CardTypeId</param> ///<returns>返回删除记录条数</returns> public bool DeleteDuCardType(int cardTypeId) { bool isok = false; try { IDbDataParameter[] par = new SqlParameter[] { new SqlParameter(), }; par[0].ParameterName = "@CardTypeId"; par[0].Value = cardTypeId; isok = DBHelper.ExecuteNonQuery(SessionFactory, CommandType.StoredProcedure, "proc_Delete_DuCardType"); } catch (NotImplementedException ex) { ex.Message.ToString(); } return isok; //return dal.DeleteDuCardType(cardTypeId); } /// <summary> /// 删除 /// </summary> /// <param name="customer"></param> /// <returns></returns> public int Dell(DuCardType cardType) { int sid = 1; NHibernate.ISession session = this.SessionFactory.GetCurrentSession(); ITransaction tran = session.BeginTransaction(); try { session.Delete(cardType); tran.Commit(); } catch (Exception ex) { sid = 0; tran.Rollback(); throw ex; } return sid; } ///<summary> /// 删除多条记录 ///</summary> ///<param name="cardTypeId">输入参数:CardTypeId</param> ///<returns>返回删除多少记录</returns> public int DeleteDuCardTypeId(string cardTypeId) { int isok = 0; try { IDbDataParameter[] par = new SqlParameter[] { new SqlParameter(), }; par[0].ParameterName = "@CardTypeId"; par[0].Value = cardTypeId; isok = DBHelper.ExecuteNonQuery(SessionFactory, CommandType.StoredProcedure, "proc_Delete_DuCardTypeId",par); } catch (NotImplementedException ex) { ex.Message.ToString(); } return isok; //return dal.DeleteDuCardTypeId(cardTypeId); } ///<summary> /// 查询记录 ///</summary> ///<param name="cardTypeId">输入参数:CardTypeId</param> ///<returns>返回DuCardTypeInfo</returns> public DuCardType SelectDuCardType(int cardTypeId) { NHibernate.ISession session = this.SessionFactory.GetCurrentSession(); //var query = session.CreateQuery(""); var query =session.Query<DuCardType>() ;// ;session.Get<DuCardType>(cardTypeId) var result = from cardType in query where cardType.CardTypeId == cardTypeId select cardType; List<DuCardType> ty = query.ToList<DuCardType>(); return ty[0]; //return dal.SelectDuCardType(cardTypeId); } ///<summary> /// 查询所有记录 ///</summary> ///<param name="cardTypeId">无输入参数</param> ///<returns>返回表所有记录(List)DuCardTypeInfo</returns> public List<DuCardType> SelectDuCardTypeAll() { NHibernate.ISession session = this.SessionFactory.GetCurrentSession(); var query = session.Query<DuCardType>(); var result = from cardType in query select cardType; List<DuCardType> list = result.ToList<DuCardType>(); return list; //return dal.SelectDuCardTypeAll(); } ///<summary> /// 查询所有记录 ///</summary> ///<param name="cardTypeId">无输入参数</param> ///<returns>返回(DataTable)DuCardType表所有记录</returns> public DataTable SelectDuCardTypeDataTableAll() { DataTable dt = new DataTable(); try { dt = DBHelper.ExecuteDataTable(SessionFactory, CommandType.StoredProcedure, "proc_Select_DuCardTypeAll"); } catch (NotImplementedException ex) { ex.Message.ToString(); } return dt; //return dal.SelectDuCardTypeDataTableAll(); } /// <summary> /// SQL script查询分页 /// </summary> /// <param name="pageSize">每页页数</param> /// <param name="currentPage">当前页码</param> /// <param name="strWhere">查询的条件</param> /// <param name="filedOrder">排序字段</param> /// <param name="recordCount">每页的记录数</param> /// <returns></returns> public DataSet GetPageList(int pageSize, int currentPage, string strWhere, string filedOrder, out int recordCount) { DataSet ds = new DataSet(); recordCount = 0; try { int topNum = pageSize * currentPage; StringBuilder strSql = new StringBuilder(); strSql.Append("select * FROM DuCardType"); if (strWhere.Trim() != "") { strSql.Append(" where " + strWhere); } recordCount = Convert.ToInt32(DBHelper.ExecuteScalar(SessionFactory, CommandType.Text,PagingHelper.CreateCountingSql(strSql.ToString()))); ds=DBHelper.ExecuteDataSet(SessionFactory, CommandType.Text, PagingHelper.CreatePagingSql(recordCount, pageSize, currentPage, strSql.ToString(), filedOrder)); } catch (NotImplementedException ex) { ex.Message.ToString(); } return ds; //return dal.GetPageList(pageSize, currentPage, strWhere, filedOrder, out recordCount); } /// <summary> /// 模糊查询 /// </summary> /// <param name="filedlist">显示字段列表</param> /// <param name="strkey">输入的关键字</param> /// <returns></returns> public DataTable GetDataTableDuCardTypeFuzzySearch(string filedlist, string strkey) { DataTable dt = new DataTable(); try { IDbDataParameter[] par = new SqlParameter[] { new SqlParameter(), new SqlParameter(), }; par[0].ParameterName = "@FieldList"; //表名 par[0].Value = filedlist; par[1].ParameterName = "where"; par[1].Value = StringConvert.getStrWhere("CardTypeName,CardTypeColor", strkey); ; dt = DBHelper.ExecuteDataTable(SessionFactory, CommandType.StoredProcedure, "proc_Select_DuCardTypeFuzzySearch", par); } catch (NotImplementedException ex) { ex.Message.ToString(); } return dt; //return dal.GetDataTableDuCardTypeFuzzySearch(filedlist, strkey); } /// <summary> /// 是否存在该记录 /// </summary> /// <param name="Id"></param> /// <returns></returns> public bool Exists(int Id) { bool isok=false; int i = 0; try { IDbDataParameter[] par = new SqlParameter[] { new SqlParameter(), }; par[0].ParameterName = "@Id"; par[0].Value = Id; using (IDataReader reader = DBHelper.ExecuteReader(SessionFactory, CommandType.StoredProcedure, "proc_Select_DuCardTypeExists", par)) { i = (!DBNull.Equals(reader["H"], null)) ? (int)reader["H"] : 0; if (i > 0) isok = true; } } catch (NotImplementedException ex) { ex.Message.ToString(); } return isok; //return dal.Exists(Id); } /// <summary> /// 返回数据总数 /// </summary> /// <param name="strWhere">查询条件</param> /// <returns></returns> public int GetCount(string where) { int i = 0; try { IDbDataParameter[] par = new SqlParameter[] { new SqlParameter(), }; par[0].ParameterName = "@where"; par[0].Value = where; object obj = DBHelper.ExecuteScalar(SessionFactory, CommandType.StoredProcedure, "proc_Select_DuCardTypeCount", par); i = (int)obj; } catch (NotImplementedException ex) { ex.Message.ToString(); } return i; //return dal.GetCount(where); } /// <summary> /// 更新一列数据 /// </summary> /// <param name="Id"></param> /// <param name="strValue">字段名=值</param> /// <returns></returns> public int UpdateField(int Id, string fieldValue) { int ret = 0; try { IDbDataParameter[] par = new SqlParameter[] { new SqlParameter(), new SqlParameter(), }; par[0].ParameterName = "@Id"; //表名 par[0].Value =Id ; par[1].ParameterName = "@FieldValue"; par[1].Value = fieldValue; ret = DBHelper.ExecuteNonQuery(SessionFactory, CommandType.StoredProcedure, "proc_Update_DuCardTypeField", par); } catch (NotImplementedException ex) { ex.Message.ToString(); } return ret; //return dal.UpdateField(Id, fieldValue); } /// <summary> /// 返回指字字段的字串 /// </summary> /// <param name="Id"></param> /// <param name="fieldName">字段名</param> /// <returns></returns> public string GetTitle(int Id, string fieldName) { string title = string.Empty; try { IDbDataParameter[] par = new SqlParameter[] { new SqlParameter(), new SqlParameter(), }; par[0].ParameterName = "@FieldName"; par[0].Value = fieldName; par[1].ParameterName = "@Id"; par[1].Value = Id; object obj = DBHelper.ExecuteScalar(SessionFactory, CommandType.StoredProcedure, "proc_Select_DuConfigTitle", par); title = obj.ToString(); } catch (NotImplementedException ex) { ex.Message.ToString(); } return title; //return dal.GetTitle(Id, fieldName); } /// <summary> /// 存储过程分页 /// 涂聚文 2016.07.03 /// </summary> /// <param name="strwhere">Where条件</param> /// <param name="aecdesc">排序字段</param> /// <param name="pageIndex">开始页码</param> /// <param name="pageSize">页大小</param> /// <param name="RecordCount">输出总页数</param> /// <returns></returns> public DataTable GetDataPage(string strwhere, string aecdesc, int pageIndex, int pageSize, out int RecordCount) { NHibernate.ISession session = this.SessionFactory.GetCurrentSession(); DataSet data = new DataSet(); try { //SessionFactory.ConnectionProvider.Driver IDbCommand cmd = SessionFactory.OpenSession().Connection.CreateCommand(); //cmd.CommandText = "testaa"; //IDbConnection con = session.Connection; //Type conType = con.GetType(); //string conTypeName = conType.FullName; // if (!conTypeName.EndsWith("Connection")) // throw new Exception("Unable to interpret connection type name: " + conTypeName); //string adapterTypeName = conTypeName.Substring(0, conTypeName.Length - 10) + "DataAdapter"; IDbDataAdapter adapter = new SqlDataAdapter(); //IDbDataAdapter adapter = conType.Assembly.CreateInstance(adapterTypeName) as IDbDataAdapter; //if (adapter == null) // throw new Exception("Unable to load IDbDataAdapter: " + adapterTypeName); // IDbCommand cmd = con.CreateCommand(); //1. // cmd.CommandText = "GetPagedRecordFor2005_2008"; // cmd.CommandType = CommandType.StoredProcedure; // IDbDataParameter p = new SqlParameter();// cmd.CreateParameter(); // IDbDataParameter p1 = cmd.CreateParameter(); // IDbDataParameter p2 = cmd.CreateParameter(); // IDbDataParameter p3 = cmd.CreateParameter(); // IDbDataParameter p4 = cmd.CreateParameter(); // IDbDataParameter p5 = cmd.CreateParameter(); // IDbDataParameter p6 = cmd.CreateParameter(); //// IDbDataParameter p7 = cmd.CreateParameter(); // if (string.IsNullOrEmpty(strwhere)) // { // strwhere = " 1=1 "; // } // p.ParameterName = "Table"; // p.Value = "DuCardType"; // p1.ParameterName = "TIndex"; // p1.Value = "CardTypeId"; // p2.ParameterName = "Column"; // p2.Value = " * "; // p3.ParameterName = "Sql"; // p3.Value = strwhere; // p4.ParameterName = "PageIndex"; // p4.Value = pageIndex; // p5.ParameterName = "PageSize"; // p5.Value = pageSize; // p6.ParameterName = "Sort"; // p6.Value = aecdesc; // //p1.ParameterName = "geovindu"; // //p1.Size = 10; // //p1.Direction = ParameterDirection.Output; //输出值 // //p7.ParameterName = "TotalRecords"; // //p7.Size = 10; // //p7.Direction = ParameterDirection.Output; // cmd.Parameters.Add(p); // cmd.Parameters.Add(p1); // cmd.Parameters.Add(p2); // cmd.Parameters.Add(p3); // cmd.Parameters.Add(p4); // cmd.Parameters.Add(p5); // cmd.Parameters.Add(p6); //// cmd.Parameters.Add(p7); // adapter.SelectCommand = cmd; // adapter.Fill(data); // //RecordCount =(int)p7.Value; // cmd.Cancel(); // cmd.Dispose(); //2. IDbDataParameter[] par = new SqlParameter[] { new SqlParameter(), //表名 new SqlParameter(),//主键,可以带表头 new SqlParameter(),//读取字段 new SqlParameter(),//Where条件 new SqlParameter(),//开始页码 new SqlParameter(),//页大小 new SqlParameter(),//排序字段 }; if (string.IsNullOrEmpty(strwhere)) { strwhere = " 1=1 "; } par[0].ParameterName = "@Table"; //表名 par[0].Value = "DuCardType"; par[1].ParameterName = "@TIndex"; par[1].Value = "CardTypeId"; par[2].ParameterName = "@Column"; par[2].Value = " * "; par[3].ParameterName = "@Sql";//查询条件 par[3].Value = strwhere; par[4].ParameterName = "@PageIndex"; par[4].Value = pageIndex; par[5].ParameterName = "@PageSize"; par[5].Value = pageSize; par[6].ParameterName = "@Sort"; par[6].Value = aecdesc; data = DBHelper.ExecuteDataSet(SessionFactory, CommandType.StoredProcedure, "GetPagedRecordFor2005_2008", par); RecordCount = data.Tables[0].Rows.Count; } catch (NotImplementedException ex) { RecordCount = 0; ex.Message.ToString(); } return data.Tables[0]; // return dal.GetDataPage(strwhere, aecdesc, pageIndex, pageSize, out RecordCount); }
以上是关于csharp: Procedure with DAO(Data Access Object) and DAL(Data Access Layer)的主要内容,如果未能解决你的问题,请参考以下文章
csharp: MySQL Stored Procedure using DAL
Retrieving Out Params From a Stored Procedure With Python
delphi输代码出现Overloaded procedure 'Edit Change' must be marked with the 'overload' dir
What is the difference between routine , method , procedure , function ? please explain it with exam
csharp 来自http://stackoverflow.com/questions/2714639/weighted-average-with-linq
csharp 来自http://forums.asp.net/t/1738967.aspx?Print+with+thermal+printer