Фон
В настоящее время работа над плагином в ArcMap выполнена в VBA с начала 2000 года и рефакторинг его в VB.NET. База данных является базой данных MS Access.
Довольно плохо знаком с VB.NET и кодированием в целом.
Error
Проблема, с которой я сталкиваюсь, заключается в том, что я получаю сообщение об ошибке:
InvalidCastException не обработано.
Произошло необработанное исключение типа «System.InvalidCastException» в Microsoft.VisualBasic.dll
Дополнительная информация: оператор '&' не определен для строки "UPDATE CustomerArea SET Area_m2 = 547" и типа "InternalField".
Код
Dim nr
Dim area_polygon_excl_faktor As Double
Dim area_db
Do While Not AdoRS.BOF
nr = AdoRS("nr")
area_db = CDbl(AdoRS("area_m2").Value)
Dim result As MsgBoxResult
result = MsgBox(aAttrID(index) & " " & area_db & " " & area_polygon_exkl_faktor & " Would you like to update the area?", vbYesNoCancel, "Update of area")
If result = MsgBoxResult.Yes Then
strSqlUpdateArea = "UPDATE CustomerArea SET Area_m2='" & area_polygon_excl_faktor & "' WHERE Nr= '" & nr
AdoConn.Execute(strSqlUpdateArea)
ElseIf result = MsgBoxResult.No Then
MsgBox("You have decided not to update the area")
End If
AdoRS - это ADODB.Recordset. Проблема, с которой я сталкиваюсь, находится на линии:
strSqlUpdateArea = "UPDATE CustomerArea SET Area_m2='" & area_polygon_excl_faktor & "' WHERE Nr= '" & nr
Я пытался переписать его несколько раз и даже добавить Convert.toString в строке nr = AdoRS ("nr"), , но безуспешно. Я знаю, что Nr в Access - это AutoNumber (LongInteger).