mm急切请教!第一次使用CSDN,请教一个关于SqlCommandBuilder的问题?
SqlDataAdapter更新数据前与SqlCommandBuilder生成命令:   
 DataSet   ds   =   new   DataSet(); 
 SqlDataAdapter   myda   =   new   SqlDataAdapter( "select   *   from   worktype ",connection); 
 SqlDataBuilder   scb   =   new   SqlDataBuilder(sda) 
 sda.Update(ds, "worktype ");   
 ds中只有一个表worktype,有字段worktype,与数据库表对应,   
 为什么用这种办法没新增数据的时候,不能将自增长的字段获取的值更新到ds.   如果我用SqlCommand每个生成SqlDataAdapter,然后再更新,则可以将数据库自动增长字段的值反映到ds中!!!!   
 应如何设置,才可以更新自增长值到ds中呢?
------解决方案--------------------扔一个例子:第一次使用CSDN,不指望你会结贴了:(   
 SqlDataAdapter catDA = new SqlDataAdapter( "SELECT CategoryID, CategoryName FROM Categories ", nwindConn);        
 catDA.UpdateCommand = new SqlCommand( "UPDATE Categories SET CategoryName = @CategoryName  " + "WHERE CategoryID = @CategoryID " , nwindConn); 
 catDA.UpdateCommand.Parameters.Add( "@CategoryName ", SqlDbType.NVarChar, 15,  "CategoryName "); 
 SqlParameter workParm = catDA.UpdateCommand.Parameters.Add( "@CategoryID ", SqlDbType.Int); 
 workParm.SourceColumn =  "CategoryID "; 
 workParm.SourceVersion = DataRowVersion.Original;   
 DataSet catDS = new DataSet(); 
 catDA.Fill(catDS,  "Categories ");    
 DataRow cRow = catDS.Tables[ "Categories "].Rows[0]; 
 cRow[ "CategoryName "] =  "New Category "; 
 catDA.Update(catDS); 
------解决方案--------------------up
------解决方案--------------------你使用sql么? 
 如果是的话可以用@@IDENTITY 来表示你最新加入的记录的标识值 
 比如我们向数据库中插入一条数据,然后返回这条记录的自增长值。 
  INSERT INTO Production.Location (Name, CostRate, Availability, ModifiedDate) 
 VALUES ( 'Damaged Goods ', 5, 2.5, GETDATE()); 
 GO 
 SELECT @@IDENTITY AS  'Identity ';//这里就取到了标识值,你改成自己的就行 
------解决方案--------------------那你是怎么添加的新的记录的,能把详细代码贴出来看下吗>
------解决方案--------------------TO:我还是更新不到ds中去呀,数据库是新增了记录,但是我的ds表中字段还是空呀   
 当然是空的啊...   
 DataAdapter+SqlCommandBuider只是负责自动生成sql语句,将DataTable或者DataSet中对记录所作的改变更新到数据库中,但是并没有反向填充的过程,即不会将更新后的数据,再填充到DataSet中...   
 如果想获得更新后的值,就再从重新取一下,并填充...
------解决方案--------------------TO:我以前用Command命令,都是可以自动将值生成在DataSet中的呀   
 那你能把这个测试的代码贴出来我看下吗?
------解决方案--------------------对于为什么你用SqlCommandBuillder,最后DataSet中没有自增的字段,而你直接写SqlCommand却最后会有自增的字段...分析下两者的命令就知道了...   
 string _sql  =  "INSERT INTO COShipment(CostOrderID, ShipDate, ShipTo, Quantity,    
 UnitID) VALUES (@ " + 
  "CostOrderID, @ShipDate, @ShipTo, @Quantity, @UnitID); SELECT    
 COShipmentID, CostO " + 
  "rderID, ShipDate, ShipTo, Quantity, UnitID FROM COShipment WHERE    
 (COShipmentID = " + 
  " @@IDENTITY) "; 
 你在直接用Command时,在insert语句后还有一句查询语句即SELECT    
 COShipmentID, CostO "...而用SqlCommandBuider不会再生成后面一句查询命令的...
------解决方案--------------------我来看mm
------解决方案--------------------up
------解决方案--------------------我来看mm 
------解决方案--------------------