本文介绍了列名或提供的值数与表定义不匹配-无法确定根本原因的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

出现错误

我当前的代码

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

vValues的下限值= 0

vValues的上限值= 54

Lowerbound Value of vValues = 0
and
Upperbound Value of vValues = 54

我的SQL Server表中有55列,没有NO增量字段,每个字段都可以接受Null值.

I am having 55 columns in my SQL server table with NO Incremental field and every field can accept Null value.

由于一切似乎都还可以,所以不确定为什么我会收到此错误...

Not sure why I am getting this error since everything seems to be Okay...

有什么建议吗?

基于答案,我最终使其循环播放,以免将来丢失任何必要的字符串.

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

推荐答案

表中总共有55列,并且缺少从@41@49的参数,从而导致错误.

Totally you have 55 columns in the table and you are missing the parameters from @41 to @49, that causing the error.

像下面这样包含将解决您的问题

Include like below will solve your problem

"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, @41, @42, @43, @44, @45, @46, @47, @48, @49," &
"@50, @51, @52, @53, @54)", con)

这篇关于列名或提供的值数与表定义不匹配-无法确定根本原因的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-09 23:16