读书人

DataTable怎么更新没有关键字的表例

发布时间: 2011-12-19 23:23:36 作者: rapoo

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
指—ataAdpater 的 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 );

读书人网 >C#

热点推荐