<%@  Page  Language="C#"  %>  
<%@Import  Namespace="System.Data"%>  
<%@Import  Namespace="System.Data.OleDb"%>  
<Script  runat="server">  
void  Page_Load(Object  Src,  EventArgs  E)  {    
   OleDbConnection  Conn=new  OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;"+  
                                       "Data  Source="+Server.MapPath("person.mdb"));  
     string  strInsertSQL  =  "INSERT  INTO  grade(学号,姓名,数学)  VALUES(111,'盖茨',59)";  
     string  strSelectSQL  =  "SELECT  *  FROM  grade  WHERE  学号=111";  
     string  strUpdateSQL  =  "UPDATE  grade  SET  数学=60  WHERE  学号=111";  
     //  创建Command对象  
     OleDbCommand  InsertComm  =  new  OleDbCommand(strInsertSQL,Conn);  
     OleDbCommand  SelectComm  =  new  OleDbCommand(strSelectSQL,Conn);  
     OleDbCommand  UpdateComm  =  new  OleDbCommand(strUpdateSQL,Conn);  
     //  创建DataAdapter对象da  
     OleDbDataAdapter  da=new  OleDbDataAdapter();  
     Conn.Open();  
     da.SelectCommand  =  SelectComm;  
     da.UpdateCommand  =  UpdateComm;  
     da.InsertCommand  =  InsertComm;  
     //  创建并填充DataSet  
     DataSet  ds  =  new  DataSet();  
     da.Fill(ds,"grade1");  
     da.InsertCommand.ExecuteNonQuery();  
     da.Fill(ds,"grade2");  
     da.UpdateCommand.ExecuteNonQuery();  
     da.Fill(ds,"grade3");  
     //  将DataSet绑定到DataGrid控件  
dg1.DataSource=ds.Tables["grade1"].DefaultView;  
dg2.DataSource=ds.Tables["grade2"].DefaultView;  
dg3.DataSource=ds.Tables["grade3"].DefaultView;  
dg1.DataBind();dg2.DataBind();dg3.DataBind();  
     //  关闭连接  
     Conn.Close();  
}  
</script>  
DataGrid1:<ASP:DataGrid  id="dg1"  runat="server"/><BR>  
DataGrid2:<ASP:DataGrid  id="dg2"  runat="server"/><BR>  
DataGrid3:<ASP:DataGrid  id="dg3"  runat="server"/>  
 
 
 
其中:        
     DataSet  ds  =  new  DataSet();  
     da.Fill(ds,"grade1");  
     da.InsertCommand.ExecuteNonQuery();  
     da.Fill(ds,"grade2");  
     da.UpdateCommand.ExecuteNonQuery();  
     da.Fill(ds,"grade3");  
为什么不需要da.SelectCommand.ExecuteNonQuery();  
帮帮忙,谢谢!!

解决方案 »

  1.   

    是因为OleDbDataAdapter自动执行了 , OleDbDataAdapter帮你做过了
      

  2.   

    那为什么InsertCommand和UpdateCommand,他就不会自动执行呢?/
      

  3.   

    可以的,你做一个tablemapping,当你改动datasource的时候可以帮你自动做
      

  4.   

    SelectCommand是在Fill时自动调用的,而InsertCommand和UpdateCommand是在Update时自动调用的
      

  5.   

    那执行da.Fill(ds,"grade2");和da.Fill(ds,"grade3");  ,还会不会自动执行SelectCommand
      

  6.   

    da的工作是自动完成Command的执行和一系列绑定的数据库连接的操作
    其本质还是各个Command的执行
    而你使用Command的时候就是个手动的过程,所以得开连接和你标题所说的操作