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