三层架构下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来实现