求教:“存储过程” 是写在数据访问层中的 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; //这里通过业务处理,返回了实体对象




