C#OleDBConnection Excel

以下从C#OLEDBConnection这个问题到Excel

我遇到使用OLEdbCommandBuilder的问题。 我有这个代码:

DataTable dt = new DataTable(); OleDbCommand command = new OleDbCommand(); command = new OleDbCommand("Select * from [working sheet$]", oleDBConnection); OleDbDataAdapter dataAdapter = new OleDbDataAdapter(); dataAdapter.SelectCommand = command; OleDbCommandBuilder c = new OleDbCommandBuilder(dataAdapter); dataAdapter.Fill(dt); //arbitrary changed datatable dt.Rows[2][3] = "dfd"; c.GetUpdateCommand(); dataAdapter.Update(dt); oleDBConnection.Close(); 

但是,当我运行它,我得到这个错误:

 Dynamic SQL generation for the UpdateCommand is not supported against a SelectCommand that does not return any key column information. 

如何使用更新的行/单元格信息更新Excel工作表? 我从来没有必要以这种方式处理Excel。

我GOOGLE了错误,但无法find任何符合我的确切要求的东西。

谢谢,

达伦。

只有在适配器知道excel-database-table的唯一主键时才能更新。 你可以添加一个id列作为Excel中的第一列,并使其成为主键,并继续像这样

  ... dataAdapter.Fill(dt); ... System.Data.DataColumn pkCol = dt.Columns[0]; // something like dt.Columns["Id"] pkCol.Unique = true; dt.PrimaryKey = new DataColumn[] {pkCol }; ... OleDbCommandBuilder c = new OleDbCommandBuilder(dataAdapter); ...