wanglinjian001 2023-02-23 09:57 采纳率: 92.3%
浏览 25
已结题

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 10: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月7日
  • 已采纳回答 2月27日
  • 创建了问题 2月23日

悬赏问题

  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测