问题
Getting error on
cmd.ExecuteNonQuery()
My Current 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
Lowerbound Value of vValues = 0
and
Upperbound Value of vValues = 54
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...
Column name or number of supplied values does not match table definition.
Any suggestions?
Based on the answer post, I finally made it in loop so that I will not miss the necessary strings in future.
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
回答1:
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)
来源:https://stackoverflow.com/questions/38096615/column-name-or-number-of-supplied-values-does-not-match-table-definition-unabl