2013-03-13 106 views
0

我有一個gridview,其中包含刪除和編輯行的按鈕。我有這個GridView的HTML代碼:刪除GridView中每行的按鈕

<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。我沒有完全理解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(發件人,ImageButton)中有錯誤。

+0

不要使用內嵌查詢 – 2013-03-13 07:17:33

回答

1

asp:Button應使用以下行定投:

Dim Btn As ImageButton = CType(sender, Button) 

由於Button不是ImageButton

其次,您將從Btn.CommandArgument獲得用戶名,但連接CommandArgument與SQL查詢不是一個非常好的主意。如果沒有存儲過程或某些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充其量是質樸的。另外請注意,對數據庫執行代碼時可能會遇到異常。所以請使用異常處理等。