0

VB.NET 1.1 フレームワークで開発された古い Web アプリケーションを使用しています。チェックボックスに問題があります。

チェックボックスに次のコードがあります。

<asp:TemplateColumn HeaderText="Reviewed">
<ItemStyle HorizontalAlign="Center" VerticalAlign="Middle" />
<ItemTemplate>
<asp:checkbox ID="chkAppRev" Runat="server" 
    OnCheckedChanged="onCheckChange" AutoPostBack="True" />  
</ItemTemplate>
</asp:TemplateColumn>

そしてこれは私のOnCheckChangedイベントのために:

Public Sub onCheckChange(ByVal sender As Object, ByVal e As EventArgs)
    Dim strSQL As String = String.Empty
    Dim inbox As CheckBox = CType(sender, CheckBox)
    Dim dgItem As DataGridItem = CType(inbox.NamingContainer, DataGridItem)
    Dim conn As OleDb.OleDbConnection = New OleDb.OleDbConnection(ConfigurationSettings.AppSettings("CONNECTIONSTRING"))
    Try
        '--update checkbox field on record in database
        conn.Open()
        If inbox.Checked = True Then
            strSQL = "Update AppUserJobs Set AppChecked=1 " & _
            "Where AppUserId=" & Convert.ToInt32(dgItem.Cells(9).Text) & 
 " and JobId=" & Convert.ToInt32(dgItem.Cells(10).Text)



        Else
            strSQL = "Update AppUser Set AppChecked=0 " & _
            "Where AppUserId=" & Convert.ToInt32(dgItem.Cells(9).Text) & 
" and JobId=" & Convert.ToInt32(dgItem.Cells(10).Text)
        End If

        Dim cmd As OleDb.OleDbCommand = New OleDb.OleDbCommand(strSQL, conn)
        Dim intRec As Integer = cmd.ExecuteNonQuery()
        conn.Close()
    Catch ex As Exception
    Finally
        If (conn.State = ConnectionState.Open) Then
            conn.Close()
        End If
    End Try
    BindData()
End Sub

aspコードと別のoncheckchangedメソッドに別のチェックボックスを追加するまで、これはすべて正常に機能します。クエリをスキップするだけのようです。

私が見逃したアイデアはありますか?

4

3 に答える 3

1

コードには大きなNO-NOがあります。それは、静かに例外をキャシングし、それを捨てています。

メソッドのどこかに何らかの例外がありますが、それに関するすべての情報を破棄すると、何が問題なのかのヒントがありません。おそらく null の参照の一部ですが、どの参照かを示す情報がなければ、問題を特定するのは困難です。

例外が暗黙のうちに埋められないように、次の行を削除します。

Catch ex As Exception

または、その後に実際に例外を処理するコードを追加します。その場合、基本クラスではExceptionなく、より具体的な例外クラスをキャッチするように行を変更する必要がありますSqlException

例外が発生した場所に関する情報があれば、問題を特定することができます。

于 2009-05-01T12:33:38.973 に答える
0

Runat="server" および AutoPostBack="True" タグを入力したことを確認しましたか?

于 2009-05-01T12:00:31.270 に答える
0

念のため、質問のコードにタイプミスはありますか?

oncheckchangedまたはoncheckchange

--

また、「asp コードに別のチェック ボックスを追加し、別の oncheckchanged メソッドを追加する」とはどういう意味ですか? 実際に別のハンドラーを作成しますか?

于 2009-05-01T12:46:25.340 に答える