2009-11-26 43 views
0

我有一個名爲:程序的訪問數據庫(.mdb),其中一個表名爲:Data。通過使用DataGridView,我提供表Data中的數據。我想在運行時從DataGridView和DB中刪除一行。有誰知道如何做到這一點(使用C#)?
我的另一個問題是,誰可以在我的數據庫上運行查詢?
謝謝!如何從數據庫中刪除一行(* .mdb)#

回答

2

非常簡單。 我想你的數據網格中有一個複選框,通過選擇你可以選擇你想要刪除的行。假設你有一個提交按鈕,所以選擇行後點擊提交按鈕。在按鈕的單擊事件調用中,刪除查詢說delete from tblname where id = @id [@id是將從您的網格傳遞的ID]

之後,只需填充網格,例如select * from tblname

例如

.aspx的代碼

<asp:GridView runat="server" ID="gvTest" Width="100%" AutoGenerateColumns="false"> 
     <Columns> 
     <asp:TemplateField HeaderText="Select" ItemStyle-HorizontalAlign="Center" ItemStyle-Width="5%"> 
     <ItemTemplate> 
     <asp:CheckBox ID="chkDel" runat="server" /> 
     </ItemTemplate> 
     </asp:TemplateField> 
     <asp:BoundField HeaderText="RegID" DataField="RegID" ItemStyle-Width="10%"> 
     <ItemStyle HorizontalAlign="Left"/> 
     </asp:BoundField>   
     <asp:TemplateField HeaderText="Name" ItemStyle-Width="22%" ItemStyle-HorizontalAlign="Left"> 
     <ItemTemplate> 
     <asp:Label ID="lblName" runat="server" Width="100%" Text= '<%# DataBinder.Eval(Container.DataItem, "UserName")%>'></asp:Label> 
     </ItemTemplate> 
     </asp:TemplateField>   
     </Columns> 
    </asp:GridView> 

<br> 

<asp:Button runat="server" ID="btnSubmit" Text="Submit" OnClick="btnSubmit_Click"></asp:Button> 

提交按鈕,依序按一下[事件的代碼

protected void btnSubmit_Click(object sender, EventArgs e) 
    { 
     for (int count = 0; count < gvTest.Rows.Count; count++) 
     { 
      CheckBox chkSelect = (CheckBox)gvTest.Rows[count].FindControl("chkDel"); 
      if (chkSelect != null) 
      { 
       if (chkSelect.Checked == true) 
       { 
        //Receiveing RegID from the GridView 
        int RegID = Int32.Parse((gvTest.Rows[count].Cells[1].Text).ToString()); 

        object result = DeleteRecord(RegID); //DeleteRecord Function will delete the record     
       } 
      } 
     } 
     PopulateGrid(); //PopulateGrid Function will again populate the grid 
    } 

    public void DeleteRecord(int RegId) 
    { 
     string connectionPath = "Data Source=<your data source>;Initial Catalog=<db name>;Integrated Security=True;userid='test';pwd='test'"; 
     string command = ""; 
    SqlConnection connection = new SqlConnection(@connectionPath); 
     command = "delete from tblname where id = " + RegId 
    try 
    { 
     connection.Open(); 
     SqlCommand cmd = new SqlCommand(command, connection); 
     cmd.ExecuteNonQuery(); 
    } 
    catch (SqlException sqlExcep) {} 
    finally 
    { 
     connection.Close(); 
    } 
    } 

    public void PopulateGrid() 
    { 

     DataTable dt = new DataTable(); 
    dt = GetRecord(); 
    if(dt !=null && dt.rows.count>0) 
    { 
      gvTest.DataSource = dt; 
      gvTest.DataBind(); 
    } 

    } 

    public DataTable GetRecord() 
    { 
     string connectionPath = "Data Source=<your data source>;Initial Catalog=<db name>;Integrated Security=True;userid='test';pwd='test'"; 
     string command = ""; 
     SqlDataAdapter adapter = new SqlDataAdapter();   
    SqlConnection connection = new SqlConnection(@connectionPath); 
    command = "Select * from tblname" ; 
    connection.Open(); 
    SqlCommand sqlCom = new SqlCommand(command, connection); 
    adapter.SelectCommand = sqlCom; 
    DataTable table = new DataTable(); 
    adapter.Fill(table); 
    return table; 
    } 

希望這是有道理的。