求教:“存储过程” 是写在数据访问层中的 SqlHelper 类中吗?
求教老师:三层架构里,数据访问层是放那些访问数据库的方法的,比如增删改查。
“存储过程”是增删改查的自定义函数,对吗?
所以如果数据访问层定义的类是SqlHelper,那么就可将 自定义的“存储过程”函数放到SqlHelper中,这样理解对吗?
拜谢老师先!!!
CREATE PROCEDURE [OWNER].[PROCEDURE NAME] ( @参数 --没参数的话把括号里的省略 ) AS SQL语句 GO
public static DataTable RunProcDataTable(string storedProcName, SqlParameter[] parameters, string tableName) { DataSet ds = new DataSet(); SqlDataAdapter da = new SqlDataAdapter(); da.SelectCommand = BuildQueryCommand(storedProcName, parameters); da.Fill(ds, tableName); return ds.Tables[tableName]; }简单的调用是
public DataTable RunProcDataTable(string storedProcName, SqlParameter[] parameters, string tableName) { return DBHelper.RunProcDataTable(storedProcName, parameters, tableName); }
//获取短消息实体对象的业务处理方法 public MsgSwapTB GetMsgInfo(string proc, SqlParameter[] para, string tableName) { DataTable dt = new DataTable(); MsgSwapTB msg = new MsgSwapTB(); dt = service.RunProcDataTable(proc, para, tableName); //这里调用了数据访问层的带参数方法 for (int i = 0; i < dt.Rows.Count; i++) { msg.Mid = int.Parse(dt.Rows[i]["Mid"].ToString()); msg.PostMsgUserID = dt.Rows[i]["PostMsgUserID"].ToString(); msg.GetMsgUserID = dt.Rows[i]["GetMsgUserID"].ToString(); msg.PostMsgName = dt.Rows[i]["PostMsgName"].ToString(); msg.GetMsgName = dt.Rows[i]["GetMsgName"].ToString(); msg.FilePath = dt.Rows[i]["FilePath"].ToString(); msg.MsgTitle = dt.Rows[i]["MsgTitle"].ToString(); msg.MsgContent = dt.Rows[i]["MsgContent"].ToString(); msg.PostTime = dt.Rows[i]["PostTime"].ToString(); msg.MsgState = dt.Rows[i]["MsgState"].ToString(); } return msg; //这里通过业务处理,返回了实体对象