簡體   English   中英

C#OleDBConnection Excel

[英]C# OleDBConnection Excel

繼此問題之后C#OLEDB與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。

我已經搜索了錯誤,但找不到符合我確切要求的任何內容。

謝謝,

達倫

僅當適配器知道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);
      ...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM