我的三层架构如下:数据访问层
        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(),可这又和三层架构的封装特性不相符,该怎么做?