2009-05-01 138 views
0

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

私は、チェックボックスのために次のコードを持っている:私のOnCheckChangedイベントの

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

と、これを:

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メソッドでは、クエリをスキップするだけのようです。

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

+1

問題が発生する前のコードを見て、どのように問題を確認できますか?あなたが変更を行った後に見えるようにコードを投稿してください。 – Guffa

+0

SQLインジェクションFTW! –

+0

こんにちはGuffaありがとう、私は文字の制限のために推測するコードをもう投稿することはできませんが、私は単純に別のIDでチェックボックスのコードを複製し、OnCheckChangedメソッドのクエリをスキップしてコードを破ります。 –

答えて

1

コード内に大きなNO-NOがあります。例外を黙って捨ててしまいます。

このメソッドのどこかに例外がありますが、それに関するすべての情報を捨てると、何が間違っているのかについてのヒントはありません。おそらくnullの参照の一部ですが、どの情報がなくても問題を見つけるのは難しいでしょう。

例外は黙って埋葬されていないように、この行を削除します。

はまた、実際に例外を処理していることの後にいくつかのコードを置きます。その場合は、基本クラスExceptionを捕まえないように行を変更する必要がありますが、SqlExceptionのような特定の例外クラスをキャッチする必要があります。

例外がどこで発生したかについての情報があれば、問題を特定することができます。

+0

ありがとう –

0

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

+0

はい両方のASPチェックボックスに入力されています –

0

ちょうど確かに、ちょうど質問のあなたのコードのタイプミスはありますか?

またはoncheckchange

をoncheckchanged -

また

あなたは "私はASPコードと別のoncheckchanged方法で別のチェックボックスを追加する" とはどういう意味ですか?実際に別のハンドラを作成していますか?

関連する問題