
お世話になります。
下記のコードを実行すると
プロシージャまたは関数 spTest の引数が多すぎます
どこが悪いのかご教示お願いいたします。
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim i As Integer
Dim conn As New SqlConnection(connstr)
Dim cmd As New SqlCommand
conn.Open()
cmd.Connection = conn
cmd.CommandText = "Delete Table2"
cmd.CommandType = CommandType.Text
Debug.WriteLine(cmd.ExecuteNonQuery())
For i = 1 To 100
spTest(cmd, i)
Next
conn.Close()
End Sub
sub spTest(ByRef cmd As SqlCommand, ByVal intID As Integer)
Dim param As SqlParameter
With cmd
.CommandType = CommandType.StoredProcedure
.CommandText = "spTest"
param = .Parameters.Add(New _
SqlParameter("@ID", SqlDbType.Int))
param.Value = intID
.ExecuteNonQuery()
''''' ここで2回目からエラーが発生します
End With
End sub
No.1ベストアンサー
- 回答日時:
Sub spTestの中で、cmdに毎回SqlParameterを足しているからでは。
1回目のAddでパラメータ1個、2回目のAddでパラメータ2個になり、2回目がエラーになるのでしょう。xcrOSgS2wYさん、FENさん有難うございました。
>ソースだけだとよく分からないので、何をするプログラムなのかを明記した方がよろしいかと。
>Sub spTestの中で、cmdに毎回SqlParameterを足しているからでは。
>1回目のAddでパラメータ1個、2回目のAddでパラメータ2個になり、2回目>がエラーになるのでしょう。
実は、トランザクション処理がやりたかったのです。
これは、テストのストアドですが
テキストファイルを読み込み全ての行を処理し終えた時にCommit
不正なデータがあった時は、Rollbackの予定でした。
が、ストアドを繰り返すと失敗するので調べておりました。
おっしゃるとおり
.Parameters.Clear()
を挿入して解決しました。
有難うございました
No.2
- 回答日時:
spTes内の「ExecuteNonQuery」が正常に完了していないのではないでしょうか?
後、ソースだけだとよく分からないので、何をするプログラムなのかを明記した方がよろしいかと。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ①ExcelVBAでカレンダーを作り、別のユザーフォームで日付を入力したいのですがエラーになります。 1 2023/02/17 18:39
- Visual Basic(VBA) いつもお世話になっております、VBAで教えて頂きたいのですが 2 2022/05/05 22:20
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
- Visual Basic(VBA) EXCEL VBAにて動的にCheckBOXを複数作成し、同BOXにイベントを追加したい 1 2023/03/16 07:05
- Visual Basic(VBA) 前回ご教授いただいたコードに覚えたてのループ処理で品名りんごAから順に20回for nextでループ 7 2023/01/13 22:01
- Visual Basic(VBA) VBAで質問ですが、皆さんはどの様に導き出しているのでしょうか? 6 2022/05/03 21:53
- Visual Basic(VBA) VBA 別ブックからの転記の高速化について VBA 別ブックからの転記の高速化についてご教授下さい。 19 2022/07/26 13:07
- Visual Basic(VBA) 九九の答えの計算 3 2022/12/20 22:13
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
- Visual Basic(VBA) 別シートから年齢別の件数をカウントしたいの続き 5 2023/01/24 00:16
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
プロシージャまたは関数の引数...
-
【VB6.0】 あるフォームから他...
-
パーソナルXLSBのfuctionを呼び...
-
VB.NETでのイベントの途中終了
-
GetNextWindowがDLLファイルUse...
-
VBA public変数はどのようなこ...
-
他のフォームから別のフォーム...
-
VBAとVB6.0とC#の速度比較
-
16進数
-
ユーザーフォームへのデータ入...
-
DTPicker テキストクリアの方法
-
コンボボックスからテキストボ...
-
【VB.NET】テキストボックスに...
-
ボールが壁に当たって跳ね返る...
-
フォーム、サブフォーム間のデ...
-
カラーの16進表記の足し算
-
#define hoge long longって正...
-
Functionの戻り値を配列にした...
-
Excel VBA: private sub 内の...
-
タイムアウトする仕組みを作りたい
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
PL/SQLのプロシージャ間でカー...
-
パーソナルXLSBのfuctionを呼び...
-
【VB6.0】 あるフォームから他...
-
【HTML、VBScript】HTAアプリケ...
-
プロシージャまたは関数の引数...
-
定数を構造体で・・・
-
HTML + VBScript で Sleep でき...
-
変数の宣言はすべきでしょうか...
-
分割コンパイルの方法がわかり...
-
【VBScript】変数のスコープ
-
ExcelのVBA。Staticな変数について
-
整数を二つ読み込み、それらの...
-
関数の引数
-
変数を複数のモジュール間で共...
-
access2007 copyfile困っています
-
VB6のFriendについて
-
VB.NETのグラフィック描画で困...
-
引数
-
VB初心者の私に教えてください!
-
プロシージャを呼び出したプロ...
おすすめ情報