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