Spaltenname oder Anzahl der angegebenen Werte stimmen nicht mit der Tabellendefinition überein. - Die Grundursache kann nicht identifiziert werden.

Getting error on

cmd.ExecuteNonQuery ()

Mein aktueller Code

Using con As New SqlConnection(sConString)
    Using cmd As New SqlCommand(
        "INSERT INTO MC_Entry VALUES(" &
        "@0,@1, @2, @3, @4, @5,@6,@7,@8,@9,@10,@11,@12,@13,@14,@15,@16,@17," &
        "@18, @19, @20, @21, @22,@23,@24,@25,@26,@27,@28,@29,@30,@31,@32,@33,@34," &
        "@35, @36, @37, @38, @39,@40,@50,@51,@52,@53,@54)", con)

        For MyIncremental = 0 To 54
            cmd.Parameters.AddWithValue("@" & MyIncremental, vValues(MyIncremental))
        Next MyIncremental

        'Debug.Print(UBound(vValues))
        'Debug.Print(LBound(vValues))
        'Debug.Print(Join(vValues, vbTab))


        con.Open()
        cmd.ExecuteNonQuery()
        con.Close()
    End Using
End Using

Niedergebundener Wert von vValues = 0
un
berer Wert von vValues = 54

Ich habe 55 Spalten in meiner SQL Server-Tabelle mit NO Incremental-Feld und jedes Feld kann Null-Wert akzeptieren.

Nicht sicher, warum ich diesen Fehler erhalte, da alles in Ordnung zu sein scheint ...

Spaltenname oder Anzahl der angegebenen Werte stimmen nicht mit der Tabellendefinition überein.

Irgendwelche Vorschläge

Auf der Grundlage des Antwortpostens habe ich es endlich in einer Schleife geschafft, damit ich in Zukunft die notwendigen Zeichenfolgen nicht verpasse.

For i = 0 To 54
    ReDim Preserve sfields(0 To i)
    sfields(i) = "@" & i
Next

sConcat = Join(sfields, ",")

Using con As New SqlConnection(sConString)
    Using cmd As New SqlCommand("INSERT INTO MC_Entry VALUES(" & sConcat & ")", con)

        For i = 0 To 54
            cmd.Parameters.AddWithValue("@" & i, vValues(i))
        Next i

        con.Open()
        cmd.ExecuteNonQuery()
        con.Close()
    End Using
End Using

Antworten auf die Frage(2)

Ihre Antwort auf die Frage