我的三层架构如下:数据访问层
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(),可这又和三层架构的封装特性不相符,该怎么做?
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(),可这又和三层架构的封装特性不相符,该怎么做?
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货