Итак, я новичок в .NET, и у меня возникли проблемы с использованием соединения ACE.OLEDB для изменения значений обновлений на листе Excel. Я продолжаю получать ошибку: невозможно обновить '(выражение)'; поле не обновляется. Таким образом, структура моего листа выглядит следующим образом:Обновление листа Excel: невозможно обновить '(выражение)'; поле не обновляется
Symbol AssetClass MarketValue SharePrice
ABC formula $1000 $10.50
MSFT formula $2000 $12
Формула поле содержит формулу, которая смотрит на символ в другой книге первенствовать, а затем захватывает его класс активов. Проблема в том, что он не позволяет мне обновлять это поле. Я изменил формат столбца на текст, чтобы убедиться, что это проблема, но без изменений. Я не знаю, почему я не могу просто добавить формулу, как если бы это был текст?
Вот мой код ниже:
Private m_sConn1 As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & PATH_Workbook1 & ";Extended Properties=""Excel 12.0 Xml;HDR=YES;MAXSCANROWS=3;READONLY=FALSE\"""
Dim conn As New OleDbConnection(m_sConn1)
conn.Open()
Dim cmd As New OleDbCommand()
cmd.Connection = conn
Dim da As New OleDbDataAdapter("Select * From [HoldingsTest$]", conn)
Dim ds As DataSet = New DataSet()
da.Fill(ds, "HoldingsTable")
' Generate the UpdateCommand and add the parameters for the command.
da.UpdateCommand = New OleDbCommand("UPDATE [HoldingsTest$] SET AssetClass =?, MarketValue =?, SharePrice = ? WHERE Symbol = ?", conn)
da.UpdateCommand.Parameters.Add("@AssetClass", OleDbType.VarChar).SourceColumn = "AssetClass"
da.UpdateCommand.Parameters.Add("@MarketValue", OleDbType.Currency).SourceColumn = "MarketValue"
da.UpdateCommand.Parameters.Add("@SharePrice", OleDbType.Currency).SourceColumn = "SharePrice"
da.UpdateCommand.Parameters.Add("@Symbol", OleDbType.VarChar, 9, "Symbol")
' Update records
ds.Tables(0).Rows(1)("AssetClass") = "formula"
ds.Tables(0).Rows(1)("MarketValue") = 101
ds.Tables(0).Rows(1)("SharePrice") = 91
' Apply the dataset changes to the actual data source (the workbook).
da.Update(ds, "HoldingsTable")
Любая помощь будет принята с благодарностью. Я действительно в тупике. Вышеприведенный код является вариантом примера из MSDN.
Какая строка является ошибкой? – rwisch45
@ rwisch45 da.Update (ds, «HoldingsTable») – Justin
Попробуйте использовать только da.Update (ds) – rwisch45