DataTable如何更新没有关键字的表,例如EXCEL中的表?
加载一个EXCEL的工作表到数据网格如下。表加载是动态的   
 dataAdapter   =   new   OleDbDataAdapter(@ "SELECT   *   FROM   [ "   +   tableName   +    "] ",   connection); 
 OleDbCommandBuilder   cmdBuilder   =   new   OleDbCommandBuilder(dataAdapter); 
 dataTable   =   new   DataTable();   
 dataAdapter.Fill(dataTable); 
 dataGrid.DataSource   =   null; 
 dataGrid.DataSource   =   dataTable;   
 但是dataTable修改后,如何更改到EXCEL
------解决方案--------------------那就不能使用OleDbDataAdapter的update方法了。   
 只能自己写SQL语句,然后使用OleDbCommand来执行你的SQL语句来更新!!!
------解决方案--------------------没有主键,SqlDataAdapter不能构造Update的sql语句,只能自己组sql语句,再用SqlCommand去执行。
------解决方案--------------------动手写 UPDATE 语句
------解决方案--------------------虽然没有主键,但是 Excel 中也要有一列 或者 几列能够标识每行数据是唯一的   
 UPDATE [Sheett1$] SET 列名1=?, 列名2=? WHERE 列名3=?
------解决方案--------------------可以 
 看看duwamish 
 指定DataAdpater 的 updatecommand 例如 
 dataAdapter = new OleDbDataAdapter(); 
 dataAdpater.UpDateCommand = new OleDataCommand(  "update table set [id]=@id , .... " , conn );//access 没怎么用过,不太清楚sql语句中变量怎么写 
 dataAdpater.UpDateCommand.Paramers.Add(  "@id " , ... , id //这里指映射到表的字段名); 
 dataTable = new DataTable(); 
 DataRow dr = dataTable.NewRow(); 
 dataTable.Rows.Add(dr); 
 dr.AcceptChange();//先接受改变 
 dr[ "id] = 1;  //再修改 
 dataAdpater.UpDate(dataTable );