欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

C# 删除行

程序员文章站 2022-07-12 14:00:05
...
//删除一行
private void delete_Click(object sender, EventArgs e)
{
    try
    {
        SqlConnection conn = new SqlConnection(DRIVER);
        conn.Open();
        SqlDataAdapter daAuthors = new SqlDataAdapter(sql_select, conn);
        DataSet dsPubs = new DataSet("Pubs");
        daAuthors.FillSchema(dsPubs, SchemaType.Source, "m_task_001"); //FillSchema加载表的架构和数据,有了架构,表就知道哪个列是它的主键,同时 Rows 集合的 Find 方法也就可用了。
        daAuthors.Fill(dsPubs, "m_task_001");
        DataTable tblAuthors;
        tblAuthors = dsPubs.Tables["m_task_001"];
        if (MessageBox.Show("确实要删除该行吗?", "询问", MessageBoxButtons.YesNo) == DialogResult.Yes)
        {
            DataRow drCurrent;
            drCurrent = tblAuthors.Rows.Find(GSR_Fid());
            drCurrent.Delete();
            //SqlCommandBuilder 提供自动生成单表命令的一种方式,这些命令用于协调使用关联的 SQL Server 数据库对 DataSet 执行的更改。 
            SqlCommandBuilder objCommandBuilder = new SqlCommandBuilder(daAuthors);
            daAuthors.Update(dsPubs, "m_task_001"); //数据适配器.Update()方法                
            //MessageBox.Show("数据库更新成功!");
            //-------重新绑定dataGridView的数据源,以便重新显示-------
            daAuthors.Fill(dsPubs, "m_task_001");
            DataTable tblAuthors1;
            tblAuthors1 = dsPubs.Tables["m_task_001"];
            gridControl1.DataSource = tblAuthors1;
        }
        conn.Close();
        conn.Dispose();
        //MessageBox.Show("数据库连接已关闭");
        CNT();//查询
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.ToString());
    }
   
}