C#winform datagridview删除指定行资料

2025-10-26 00:34:31

1、在实现建立好的winform窗体界面上添加一个datagridview控件,拉取到适当大小,属性可以默认。

C#winform datagridview删除指定行资料

2、添加主窗体刷新函数,这样做的目的就是我们新增、删除后立即显示刷新到窗体上。

 private void product_raiseCallBackRefreshEvent()

        {

            Product_Load(null, null);//刷新窗体

        }

C#winform datagridview删除指定行资料

3、创建查询条件存储过程,这里是从tproduct表进行查询。

USE [BF]

GO

/****** Object:  StoredProcedure [dbo].[select_product]    Script Date: 03/31/2018 13:10:23 ******/

SET ANSI_NULLS ON

GO

SET QUOTED_IDENTIFIER ON

GO

create proc [dbo].[select_product]

as

begin

select P_no,P_name,P_spc,P_type,P_pos from tproduct

end

C#winform datagridview删除指定行资料

4、编写winform中datagridview显示数据代码,也就是说,我们的目的是把查询到的值显示到datagridview中.这里还给datagridview行加上“编辑”栏位。

 private void show_data(DataGridView DG)

        {

            SqlCommand cmd = new SqlCommand("select_product", login.share_cls.conn);

            cmd.CommandType = CommandType.StoredProcedure;

            SqlDataAdapter dpt = new SqlDataAdapter(cmd);

            DataTable dt = new DataTable();

            dpt.Fill(dt);

            DataGridViewCheckBoxColumn ck = new DataGridViewCheckBoxColumn();

            DG.Columns.Add(ck);

            DG.DataSource = dt;

            DG.Columns[0].HeaderText = "选择";

            DG.Columns[1].HeaderText = "料号";

            DG.Columns[2].HeaderText = "品名";

            DG.Columns[3].HeaderText = "规格";

            DG.Columns[4].HeaderText = "料号";

            DG.Columns[5].HeaderText = "密度";

            DG.Columns[0].Width = 50;

        }

C#winform datagridview删除指定行资料

5、编写winfrom登录时的事件,这里是将产品信息显示到datagridview控件中。

 private void Product_Load(object sender, EventArgs e)

        {

            if (login.share_cls.conn.State == ConnectionState.Closed)

            {

                login.share_cls.conn.Open();

            }

            dataGridView1.Columns.Clear();

            show_data(dataGridView1);

            dataGridView1.AllowUserToAddRows = false;//關閉dataGridview中最後一個空白行。

            login.share_cls.conn.Close();

        }

C#winform datagridview删除指定行资料

6、编写datagridview控件被打击时的事件,也就是我们前面提到的“选择”功能

private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)

        {

            try

            {

                if (e.ColumnIndex == 0 && e.RowIndex >= 0)

                {

                    foreach (DataGridViewRow row in dataGridView1.Rows)

                    {

                        row.Cells[e.ColumnIndex].Value = false;

                        dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value = true;

                    }

                    if ((bool)this.dataGridView1.Rows[e.RowIndex].Cells[0].EditedFormattedValue)

                    {

                        products.p_no = dataGridView1.Rows[e.RowIndex].Cells[1].EditedFormattedValue.ToString();

                        products.p_name = dataGridView1.Rows[e.RowIndex].Cells[2].EditedFormattedValue.ToString();

                    }

                    else

                    {

                        products.p_no = "";

                        products.p_name = "";

                    }

                }

            }

C#winform datagridview删除指定行资料

7、给“删除”按钮添加代码,实现单击删除按钮删除我们选中的行。

private void toolStripButton3_Click(object sender, EventArgs e)

        {

            if (login.share_cls.conn.State == ConnectionState.Closed)

            {

                login.share_cls.conn.Open();

            }

            if (Product.products.p_no==""&&Product.products.p_name == "")

            {

                MessageBox.Show("请选择数据!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);

                return;

            }

            DialogResult dr = MessageBox.Show("确定要删除此产品信息吗?", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Information);

            if (dr == DialogResult.OK)

            {

                del_prd(Product.products.p_no, "delete from tdepartment");

                product_raiseCallBackRefreshEvent();

            }

            login.share_cls.conn.Close();

        }

         private void del_prd(string p_no, string sqlstr)

        {

            SqlCommand cmd = new SqlCommand("" + sqlstr + " where p_ no='" + p_no + "'", login.share_cls.conn);

            cmd.ExecuteNonQuery();

        }

        }

    }

C#winform datagridview删除指定行资料

8、到此,实现了我们删除datagridview上指定栏位的数据,附上完成代码:

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

using System.Data.SqlClient;

namespace BF销售管理系统

{

    public partial class Product : Form

    {

        public Product()

        {

            InitializeComponent();

        }

        private void toolStripButton1_Click(object sender, EventArgs e)

        {

        }

        private void product_raiseCallBackRefreshEvent()

        {

            Product_Load(null, null);

        }

        public static class products

        {

            private static string _p_no;

            public static string p_no

            {

                get { return _p_no; }

                set { _p_no = value; }

            }

            private static string _p_name;

            public static string p_name

            {

                get { return _p_name; }

                set { _p_name = value; }

            }

            private static string _p_spc;

            public static string p_spc

            {

                get { return _p_spc; }

                set { _p_spc = value; }

            }

            private static string _p_type;

            public static string p_type

            {

                get { return _p_type; }

                set { _p_type = value; }

            }

            private static string _p_pos;

            public static string p_pos

        {

            get { return _p_pos; }

            set { _p_pos = value; }

        }

        }

        private void show_data(DataGridView DG)

        {

            SqlCommand cmd = new SqlCommand("select_product", login.share_cls.conn);

            cmd.CommandType = CommandType.StoredProcedure;

            SqlDataAdapter dpt = new SqlDataAdapter(cmd);

            DataTable dt = new DataTable();

            dpt.Fill(dt);

            DataGridViewCheckBoxColumn ck = new DataGridViewCheckBoxColumn();

            DG.Columns.Add(ck);

            DG.DataSource = dt;

            DG.Columns[0].HeaderText = "选择";

            DG.Columns[1].HeaderText = "料号";

            DG.Columns[2].HeaderText = "品名";

            DG.Columns[3].HeaderText = "规格";

            DG.Columns[4].HeaderText = "料号";

            DG.Columns[5].HeaderText = "密度";

            DG.Columns[0].Width = 50;

        }

        private void Product_Load(object sender, EventArgs e)

        {

            if (login.share_cls.conn.State == ConnectionState.Closed)

            {

                login.share_cls.conn.Open();

            }

            dataGridView1.Columns.Clear();

            show_data(dataGridView1);

            dataGridView1.AllowUserToAddRows = false;//關閉dataGridview中最後一個空白行。

            login.share_cls.conn.Close();

        }

        private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)

        {

            try

            {

                if (e.ColumnIndex == 0 && e.RowIndex >= 0)

                {

                    foreach (DataGridViewRow row in dataGridView1.Rows)

                    {

                        row.Cells[e.ColumnIndex].Value = false;

                        dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value = true;

                    }

                    if ((bool)this.dataGridView1.Rows[e.RowIndex].Cells[0].EditedFormattedValue)

                    {

                        products.p_no = dataGridView1.Rows[e.RowIndex].Cells[1].EditedFormattedValue.ToString();

                        products.p_name = dataGridView1.Rows[e.RowIndex].Cells[2].EditedFormattedValue.ToString();

                    }

                    else

                    {

                        products.p_no = "";

                        products.p_name = "";

                    }

                }

            }

            catch (Exception ex)

            {

                MessageBox.Show(ex.Message);

            }

        }

        private void toolStripButton3_Click(object sender, EventArgs e)

        {

            if (login.share_cls.conn.State == ConnectionState.Closed)

            {

                login.share_cls.conn.Open();

            }

            if (Product.products.p_no==""&&Product.products.p_name == "")

            {

                MessageBox.Show("请选择数据!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);

                return;

            }

            DialogResult dr = MessageBox.Show("确定要删除此产品信息吗?", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Information);

            if (dr == DialogResult.OK)

            {

                del_prd(Product.products.p_no, "delete from tdepartment");

                product_raiseCallBackRefreshEvent();

            }

            login.share_cls.conn.Close();

        }

         private void del_prd(string p_no, string sqlstr)

        {

            SqlCommand cmd = new SqlCommand("" + sqlstr + " where p_no='" + p_no + "'", login.share_cls.conn);

            cmd.ExecuteNonQuery();

        }

        }

    }

C#winform datagridview删除指定行资料

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢