首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

DataTable怎么更新没有关键字的表,例如EXCEL中的表

2011-12-19 
DataTable如何更新没有关键字的表,例如EXCEL中的表?加载一个EXCEL的工作表到数据网格如下。表加载是动态的d

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 );

热点排行