wanglinjian001 2023-02-23 01:57 采纳率: 100%
浏览 26
已结题

c# datagirdview 表格,删除一条记录,没有直接更新掉。需要退出该窗口,再进入确实删除了。

c# datagirdview 表格,删除一条记录,没有直接更新掉。需要退出该窗口,再进入确实删除了。
获得表格代码如下:

 oleConnection1.Open();
            string sql = "select * from txt ";
            OleDbDataAdapter thisAdapter = new OleDbDataAdapter(sql, oleConnection1); 
            DataSet thisDataSet = new System.Data.DataSet(); 
            thisAdapter.Fill(thisDataSet, "table");   
            DataTable dt = thisDataSet.Tables["table"];  
            dataGridView1.DataSource = dt;

img


目前删除代码如下:

  string sql = "delete from txt where id" + "="+dgv.Rows[e.RowIndex].Cells[0].Value.ToString().Trim()+"";
                    OleDbCommand cmd = new OleDbCommand(sql, oleConnection1);
                    cmd.ExecuteNonQuery();                  
                    MessageBox.Show("删除成功");

有什么办法,删除后,直接体现出来。 不需要退出窗口,再进入。
请各位积极回复,非常感谢,望能有详细代码。

  • 写回答

5条回答 默认 最新

  • muyiliu 2023-02-23 02:55
    关注
    private void Delete_Click(object sender, EventArgs e)
            {
                 SqlConnection conn = new SqlConnection("数据库连接串");
                 conn.Open();
                 SqlDataAdapter daAuthors = new SqlDataAdapter("Select * From student", conn);
    
                 DataSet dsPubs = new DataSet("Pubs");
                 daAuthors.FillSchema(dsPubs, SchemaType.Source, "student"); 
    
    
                 daAuthors.Fill(dsPubs, "student");
                 DataTable tblAuthors;
                 tblAuthors = dsPubs.Tables["student"];
    
    
                if (MessageBox.Show("确实要删除该行吗?", "询问", MessageBoxButtons.YesNo) == DialogResult.Yes)
                {
                    DataRow drCurrent;              
                    string Row_zhi = dataGridView1.SelectedRows[0].Cells[0].Value.ToString();//获取第一个单元格的值            
                    //MessageBox.Show(Row_zhi);            
                    drCurrent = tblAuthors.Rows.Find(Row_zhi);
                    drCurrent.Delete();
    
                    SqlCommandBuilder objCommandBuilder = new SqlCommandBuilder(daAuthors); //SqlCommandBuilder 提供自动生成单表命令的一种方式,这些命令用于协调使用关联的 SQL Server 数据库对 DataSet 执行的更改。              
                    daAuthors.Update(dsPubs, "student"); //数据适配器.Update()方法                
                    //MessageBox.Show("数据库更新成功!");
    
                    //-------重新绑定dataGridView的数据源,以便重新显示-------
                    daAuthors.Fill(dsPubs, "student");
                    DataTable tblAuthors1;
                    tblAuthors1 = dsPubs.Tables["student"];
                    dataGridView1.DataSource = tblAuthors1;
                }
    
                conn.Close();
                conn.Dispose();
                //MessageBox.Show("数据库连接已关闭");            
            }
    
    

    一个示例,可以参考

    展开全部

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)
编辑
预览

报告相同问题?

问题事件

  • 系统已结题 3月6日
  • 已采纳回答 2月27日
  • 创建了问题 2月23日
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部