Sixthsense Sixthsense - 5 months ago 57
Vb.net Question

Column name or number of supplied values does not match table definition - Unable to identify the root cause

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?

Answer

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)
Comments