El nombre de la columna o el número de valores proporcionados no coinciden con la definición de la tabla: no se puede identificar la causa raíz

Obteniendo error en

cmd.ExecuteNonQuery ()

Mi código actual

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

Valor más bajo de vValues = 0
y
Valor de límite superior de vValues = 54

Tengo 55 columnas en mi tabla del servidor SQL sin campo incremental y cada campo puede aceptar un valor nulo.

No estoy seguro de por qué recibo este error, ya que todo parece estar bien ...

El nombre de la columna o el número de valores proporcionados no coincide con la definición de la tabla.

¿Alguna sugerencia?

Según la publicación de respuestas, finalmente lo hice en bucle para no perder las cadenas necesarias en el futuro.

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

Respuestas a la pregunta(1)

Su respuesta a la pregunta