2009-11-26 5 views
0

У меня есть DB доступа (.mdb) с именем: Programs, с одной таблицей с именем: Data. Используя DataGridView, я представляю данные из таблицы Data. Я хочу удалить строку из DataGridView и из БД во время выполнения. Кто-нибудь знает, как это сделать (используя C#)?
Другой вопрос у меня есть, кто может я запускать запросы на моей БД?
спасибо!Как удалить строку из DB (* .mdb) в C#

ответ

2

Очень простой. Я полагаю, что в вашем datagrid у вас есть флажок, выбирая, что вы сможете выбрать строки, которые хотите удалить. И предположим, что у вас есть кнопка отправки, поэтому после выбора строк нажмите кнопку отправки. В вызове события нажатия кнопки запрос «Удалить» скажет delete from tblname where 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> 

Отправить код кнопки cilck мероприятия

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; 
    } 

Надеется, что это имеет смысл.

 Смежные вопросы

  • Нет связанных вопросов^_^