取得エラーを識別することができません列名または指定された値の数がテーブルの定義と一致していません -</p> <blockquote> <p>cmd.ExecuteNonQuery()</p> </blockquote> <p>私の現在のコード上で根本的な原因に
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
および
上限V vueue = 54
SQLサーバテーブルに増分フィールドがない55個のカラムがあり、すべてのフィールドでNull値を受け入れることができます。
すべてがオーケーのようですので、私はこのエラーを取得しています理由はわからない...
列名または指定された値の数がテーブルの定義と一致していません。
答えのポストに基づいて、私は最終的にそれをループで作ったので、将来必要な文字列を見逃すことはありません。
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
を解決する、あなたは41' 49'値@ 'へ@'逃していますか? – Arulkumar
あなたは正しいです...私はその部分をどのように逃したのか分かりません。今それは正常に動作しています。 – Sixthsense
私は将来、欠落している文字列の問題を避けるためにループで作成しました。私の最初のポストで同じ更新: – Sixthsense