2012-01-29 6 views
0

サイトを構築していますが、問題があります。 ボタンがクリックされた行のグリッドのデータにどのようにアクセスできるか分かりません。グリッドビューのクリックされたボタン行のデータを取得するにはどうすればよいですか?

た.aspxファイル:

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataSourceID="SqlEntry" 
    CssClass="style1"> 
    <Columns> 
     <asp:BoundField DataField="ReordID" HeaderText="ReordID" InsertVisible="False" SortExpression="ReordID" 
      Visible="False" /> 
     <asp:BoundField DataField="Name" HeaderText="Name" SortExpression="Name" /> 
     <asp:BoundField DataField="EmailID" HeaderText="EmailID" SortExpression="EmailID" /> 
     <asp:BoundField DataField="Password" HeaderText="Password" SortExpression="Password" /> 
     <asp:TemplateField HeaderText="Delete" SortExpression="Delete"> 
      <ItemTemplate> 
       <asp:Button Text="Delete" runat="server" OnClick="Grid_Click" /> 
      </ItemTemplate> 
     </asp:TemplateField> 
    </Columns> 
    <HeaderStyle BackColor="Gray" /> 
    <AlternatingRowStyle BackColor="#CCCCCC" /> 
</asp:GridView> 
<asp:SqlDataSource ID="SqlEntry" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString %>" 
    SelectCommand="SELECT * FROM [Entry]"></asp:SqlDataSource> 

.CSファイル:

protected void Refresh_Click(object sender, EventArgs e) 
{ 
    GridView1.DataBind(); 
    resetdata(); 
} 
protected void Submit_Click(object sender, EventArgs e) 
{ 
    string str = "INSERT INTO Entry (Name, EmailID, Password) VALUES ('" + TextBox1.Text.Trim() + "','" + TextBox2.Text.Trim() + "','" + TextBox3.Text.Trim() + "');"; 
    Connection conn = new Connection(str); 
    Refresh_Click(sender, e); 
} 
protected void resetdata() 
{ 
    TextBox1.Text = ""; 
    TextBox2.Text = ""; 
    TextBox3.Text = ""; 
} 
protected void Grid_Click(Object sender, EventArgs e) 
{ 
    string str = "DELETE FROM Entry WHERE RecordID = @RecordID"; 
    Connection conn = new Connection(str); 
    GridView1.DataBind(); 
    resetdata(); 
} 

Connectionクラス:

public Connection(string qry) 
{ 
    SqlConnection con = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Database.mdf;Integrated Security=True;User Instance=True"); 
    SqlCommand cmd = new SqlCommand(); 
    cmd.CommandType = System.Data.CommandType.Text; 
    cmd.CommandText = qry; 
    cmd.Connection = con; 
    con.Open(); 
    cmd.ExecuteNonQuery(); 
    con.Close(); 
} 

どのように私はこのWebページを使用してSQL Server 2005からデータを削除することができますか? コード内の問題は何ですか?

答えて

0

あなたはIDが含まれているあなたのボタンにCommandArgumentCommandNameを付けることができ - そして、GridViewコントロールにRowCommandイベントを追加...

<ItemTemplate> 
    <asp:Button Text="Delete" runat="server" CommandArgument="<%# Eval('ReordID') %>" CommandName="REMOVE" OnClick="Grid_Click" /> 
</ItemTemplate> 

-

void GridView1_RowCommand(Object sender, GridViewCommandEventArgs e) 
{ 

    if(e.CommandName=="REMOVE") 
    { 
     int orderId = Convert.ToInt32(e.CommandArgument); 
     //Do Sql Here 
    } 
} 
+0

エラーがあります発生します。パーサーエラー 行50: 行51: 行52:コマンドライン= "サーバー" CommandArgument = "<%#Eval(" ReordID ")%>" 行53:CommandName = "REMOVE" /> 行54:/ItemTemplate> – Ankur

+0

使用している.NETのバージョンは? – Evan

+0

のMicrosoft Visual Studio 2008の .NETフレームワーク3.5 のMicrosoft SQL Server 2005の – Ankur

関連する問題