Я получаю эту ошибку, когда моя программа вставляет CSV файлы в сервер базы данных Advantage, так что мое решение было примитивным, чтобы вставить строки параметризованными:ошибки преобразования дважды в целом vb.net - сервер базы данных преимущества
Private Sub AddParameters(ByRef db As DBUmgebung.cdb.SQL, r As SeekZeilen)
Try
For i As Integer = 0 To r.erste_Zeile.Length - 1
Dim value As String = ZeichensatzAnpassen(r._Rest(i))
If value = "" Then
db.FeldWertChar(r.erste_Zeile(i), DBNull.Value)
ElseIf value Is Nothing OrElse IsDBNull(value) Then
db.FeldWertChar(r.erste_Zeile(i), DBNull.Value)
ElseIf IsNumeric(value) Then
If value.Contains(",") Then
db.FeldWertDecimal(r.erste_Zeile(i), value.Replace(",", "."))
Else
db.FeldWertInteger(r.erste_Zeile(i), value)
End If
ElseIf IsDate(value) Then
db.FeldWertDate(r.erste_Zeile(i), value)
Else
db.FeldWertChar(r.erste_Zeile(i), value)
End If
Next
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
End Sub
так эта функция распознает, когда набор данных представляет собой строку, double, data или integer, но если один из наборов данных пуст, но double, он будет рассматриваться как целочисленный, поэтому я получаю следующую ошибку. есть ли у кого-нибудь лучшее решение для распознавания типов данных? Потому что я не вижу никаких других решений, как автоматически читать SQLCreateFile.txt возвращения типов данных,
Я не понимаю вашего вопроса. Что такое 'SQLCreateFile.txt'-файл? Где вы его используете? Какую ошибку вы получаете точно и где? Ваше 'значение' является строкой, поэтому автоматическое определение типа невозможно. Ваш 'value.Replace (", ",". ")' Неудобен, что это, если значение содержит разделители тысяч групп или изменения культуры ввода? Используйте 'Decimal.TryParse', чтобы проверить, может ли строка быть преобразована в' Decimal', аналогично 'Double' или' Integer'. –
Я имею в виду файл, содержащий все команды создания SQL, я получаю сообщение об ошибке, когда моя программа вставляет все строки в a для каждого цикла. и есть только числа, которые являются либо целыми, либо двойными, все числа, которые содержат, должны быть заменены на. и распознается как double – Sparkm4n
Что означает * пустое, но двойное оно будет рассматриваться как целое * означает? Он не может быть * пустым, но double *, так как он * * или пустой или двойной; он не может быть одновременно одновременно –