将双精度转换为整数vb.net-advantage数据库服务器时出错

将双精度转换为整数vb.net-advantage数据库服务器时出错,vb.net,type-conversion,sql-insert,advantage-database-server,Vb.net,Type Conversion,Sql Insert,Advantage Database Server,当我的程序将CSV文件插入Advantage数据库服务器时,我遇到了这个错误,所以我的原始解决方案是插入参数化的行: 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 = Zeich

当我的程序将CSV文件插入Advantage数据库服务器时,我遇到了这个错误,所以我的原始解决方案是插入参数化的行:

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

因此,该函数可以识别数据集是字符串、双精度、数据还是整数,但如果其中一个数据集为空但为双精度,则会将其视为整数,因此我得到以下错误。有谁有更好的解决方案来识别数据类型吗?因为我看不到任何其他自动读取返回数据类型的SQLCreateFile.txt的解决方案,请尝试像这样迭代大小写区别:

switch (Type.GetTypeCode(node.GetType()))
{
    case TypeCode.Decimal:
        ' Handle Decimal
        break;

    case TypeCode.Int32:
        ' Handle Int32
        break;
     '...
}

我不明白你的问题。什么是
SQLCreateFile.txt
-文件?你在哪里使用它?你得到的确切错误是什么?在哪里?您的
值是一个字符串,因此无法进行自动类型检测。您的
值.Replace(“,”,“)
很难处理,如果该值包含数千个组分隔符,或者输入区域性发生了变化,该怎么办?使用
Decimal.TryParse
检查字符串是否可以转换为
Decimal
,类似于
Double
Integer
。我指的是包含所有SQL create命令的文件,当我的程序在for each循环中插入所有行时,会出现错误。只有整数或双精度的数字,所有包含的数字都需要替换为。并被识别为double除了double之外,空的是什么意思?它将被视为整数?它不能是空的,而是双重的,因为它不是空的就是双重的;它不能同时是两个,我的意思是double也可以是空的,也可以是整数,这就是问题所在,我需要一种算法,即使字段为空,也能识别它是double还是整数。这里没有XML或HTML,因此没有
节点
来拥有
。GetType
。这个问题是关于从.CSV文件导入文本的。因此,没有
GetType
,也没有
TypeCode