none
Excel Insert Data 問題 RRS feed

  • 問題

  • 當我嘗試用 ADO.NET 來 增加資料到 Excel 的時侯也遇到以下網頁所描述的用樣問題

    http://support.microsoft.com/kb/316756/zh-tw

     

    但我看不出那個解決方法是怎樣 set 一個 primiary key 即

     

    "如果要解決這個問題當您插入新資料錄藉由使用 OLEDbDataAdapter , 您必須提供的配接器 InsertCommand 成員透過主索引鍵資訊。 若要修改現有資料錄, 您必須提供透過 UpdateCommand 成員主索引鍵資訊。
    "

     

    但從代碼也看不出是怎樣解決

    ...很 confuse...

    請指教 ~

    Thank ~

    2007年4月20日 下午 05:46

解答

  • Thank 小朱 ~

     

    剛剛找到了原因, 之前我設定 Connection string 時是用以下的設定的

     

    Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\MyExcel.xls;Extended Properties="Excel 8.0;HDR=Yes;IMEX=1";

     

    原來用了 IMEX=1 會有一些限制的

     

    如以下的網頁所說

     

    http://www.connectionstrings.com/?carrier=excel

     

    "IMEX=1;" tells the driver to always read "intermixed" (numbers, dates, strings etc) data columns as text. Note that this option might affect excel sheet write access negative.

     

    拿掉了 IMEX=1 現在就沒事了

    2007年4月21日 下午 02:03

所有回覆

  • 要使用 ADO.NET 存取 Excel,請自己寫碼 .

    因為 Excel 的 SQL 指令和一般的指令有些不同,而且不支援 DELETE .

    而且 Excel 試算表無法設定 PK ...

     

    這裡就有寫了:http://support.microsoft.com/kb/316934/

    2007年4月21日 上午 12:25
    版主
  • Thank 小朱 ~

     

    剛剛找到了原因, 之前我設定 Connection string 時是用以下的設定的

     

    Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\MyExcel.xls;Extended Properties="Excel 8.0;HDR=Yes;IMEX=1";

     

    原來用了 IMEX=1 會有一些限制的

     

    如以下的網頁所說

     

    http://www.connectionstrings.com/?carrier=excel

     

    "IMEX=1;" tells the driver to always read "intermixed" (numbers, dates, strings etc) data columns as text. Note that this option might affect excel sheet write access negative.

     

    拿掉了 IMEX=1 現在就沒事了

    2007年4月21日 下午 02:03