2016-10-15 10 views
0

Webフォームの情報をMS SQLデータベースに挿入し、その行に作成されたエントリIDを返すasp.net Webアプリケーションがあります。私はvb.netのコードの背後にこれを達成します。コードが "End Sub"コマンドに達すると、コード実行は以前の行にジャンプして元の行に戻ります。これにより、2つの行がデータベースに入力されます。 "End Sub"に2回目に達すると、サブは終了する。この時点でVB.NET End Subステートメントによってコードが後方にジャンプする

Protected Sub SubmitForm() Handles SubmitButton.ServerClick 
    'Declare Variables 
    'i have deleted this part from this post as i am over the char limit 

    'Set values on variables 
    'i have deleted this part from this post as i am over the char limit 


    'Set connection string 
    Dim setCmd As New SqlCommand 
    sConnectionString = "Password=passwordhere;User ID=userhere;" & _ 
         "Initial Catalog=databasehere;" & _ 
         "Data Source=serverhere" 
    Dim objConn As New SqlConnection(sConnectionString) 

    'Connect to database 
    Try 
     objConn.Open() 
    Catch Ex As Exception 
     Select Case Ex.ToString 
      Case "InvalidOperationException" 
       Exit Try 
      Case "SqlException" 
       MsgBox("The database is currently down. Please try again in a few minute. " & vbNewLine & "If the issue persists please alert your supervisor.") 
       Exit Sub 
     End Select 
    End Try 

    'Set the stored proc 
    sStoredProcName = "storedprocnamehere" 
    setCmd = New SqlCommand(sStoredProcName, objConn) 
    setCmd.CommandType = CommandType.StoredProcedure 

    'Set the parameters that cannot be null 
    'I do set all of the needed parameters, however i have deleted them from this post as i am over the char limit 

    lReportNum = setCmd.ExecuteScalar() 

End Sub 

それは正しいlReportNum = setCmd.ExecuteScalar()の前の行にジャンプし、再びラインを介して実行されます。

これはコードをデプロイしてイントラネット上のページにアクセスしても発生します。

は私が

助けてください2010と.NET 3.5

をビジュアル・スタジオを使用しています!私はこれに苦労して、2日間ウェブで答えを求めた。ショーン

+0

あなたのコード、この 'Sub'を呼び出す特にコードの多くを示してください。 –

+0

何かのポストバックでなければなりません。 – shadow

+0

ストアドプロシージャに何か問題がありますか? SQLプロファイラを実行し、トランザクションをトレースします。 – JoshYates1980

答えて

0

はあなたのデビッドTanseyと影をありがとうございました。あなたのコメントは私の答えにつながります。それはポストバックの問題そのものではありませんでしたが、デービッドの要望と相まって、サブを呼び出すコードを見て、私は実際にプロシージャを2回呼び出すことがわかりました。私のボタンのonserverclickイベントに入り、もう一度VBコードビハインドに 'Handles SubmitButton.ServerClick'を含めます。

ボタンのonserverclickイベント宣言を削除しました。すべて正常に動作します。

ちょうど数行後方にジャンプしているように見えましたが、実際には再びサブ全体を実行していて、もう一度ブレークポイントで停止しました。だから、再び大きな

はあなたの助けをありがとう

ショーン

関連する問題