读书人

三层架构下dataset的更新,该如何处理

发布时间: 2012-02-10 21:27:41 作者: rapoo

三层架构下dataset的更新
我的三层架构如下:

数据访问层
public void RunProc(string procName, SqlParameter[] param, out DataSet dataSet)
{
///创建Command
SqlCommand cmd = CreateCommand(procName, param);

///读取数据
dataSet = new DataSet();
SqlDataAdapter da = new SqlDataAdapter(cmd);
da.Fill(dataSet);
}

逻辑层:
public DataSet getMajorByParent2(Int16 parentMajorID)
{
DbFunc dbFunc = new DbFunc();
DataSet ds = new DataSet();
SqlParameter[] prams ={ dbFunc.CreateInParam( "@parentMajor ", SqlDbType.SmallInt, 8, parentMajorID) };
try
{
dbFunc.RunProc( "GetMajorByParent ", prams, out ds);
}
catch (Exception ex)
{
AppError.show(ex);
}
return ds;
}

表现层:
dt = (new Major()).getMajorByParent2(Convert.ToInt16(theNode.Tag)).Tables[0];
dataGridView1.DataSource = dt;

我需要在datagridview中直接编辑数据,在点“更新”按钮写回数据库
一般情况下要直接用sqldataadapter.update(),可这又和三层架构的封装特性不相符,该怎么做?


[解决办法]
为了符合你的架构封装

你可以在更新时通过传递dataset或者datatable来实现

读书人网 >C#

热点推荐