0

行の削除と編集のボタンを含むグリッドビューがあります。グリッドビュー用の次の html コードがあります。

<asp:GridView ID="gvList" runat="server">
<Columns>

<asp:TemplateField HeaderText="Actions" HeaderStyle-ForeColor="black" HeaderStyle-Font-Bold="true">
<ItemTemplate>
<asp:Button ID="btnedit" runat="server" Text="Edit" />
<asp:Button CommandArgument='<%# Eval("cUserName")%>' ID="btnDelete" OnClick="DeleteRow" runat="server" Text="Delete" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>

コマンド引数を使用して、削除ボタンと編集ボタンを有効にする必要があります。私は commandargument を完全には理解していません。これをより適切に行う方法が他にもあると思います。とにかく、私はvbサーバー側にこのコードを持っています:

Public Function DelRow() As DataTable

Dim Btn As ImageButton = CType(sender, ImageButton)


    Dim Query As String = "Delete FROM Intranet.dbo.Gn_ISCoordinators where cUserName=" & Btn.CommandArgument
    Dim dt As DataTable = New DataTable()
'
'I need to complete this
'...
'
End Using
End Function

btnAdd.CommandArgumentまた、が正しいかどうか知りたいです。Ps: 送信者の下の CType(sender, ImageButton) にエラーがあります。

4

1 に答える 1

1

asp:Button次の行を使用してキャストする必要があります。

Dim Btn As ImageButton = CType(sender, Button)

としてButtonではありませんImageButton

次に、からユーザー名を取得しますBtn.CommandArgumentが、SQLクエリと連結CommandArgumentすることはあまり良い考えではありません。ストアドプロシージャまたは一部のORMフレームワークでない場合は、少なくともパラメータを使用してクエリを使用してみてください。以下を使用してデータベースに接続し、クエリを実行します。

Using con As SqlConnection = New SqlConnection(<CONNECTION_STRING>)
    con.Open()
    Dim sql As String = "Delete FROM Intranet.dbo.Gn_ISCoordinators where" & _
                      " cUserName= @UserName"

    Dim cmd As SqlCommand = New SqlCommand(sql, con)
    cmd.Parameters.Add(New SqlParameter("@UserName", Btn.CommandArgument))

    cmd.ExecuteNonQuery() 
    con.Close()
End Using

PS:-私のVB.Netはせいぜい素朴です。また、データベースに対してコードを実行するときに例外が発生する可能性があることに注意してください。したがって、例外処理などを使用してください。

于 2013-03-13T05:57:21.693 に答える