1、在实现建立好的winform窗体界面上添加一个datagridview控件,拉取到适当大小,属性可以默认。
2、添加主窗体刷新函数,这样做的目的就是我们新增、删除后立即显示刷新到窗体上。private void product_raiseCallBackRefreshEvent() { Product_Load(null, null);//刷新窗体 }
3、创建查询条件存储过程,这里是从tproduct表进行查询。USE [BF]GO/****** Object: StoredProcedure [dbo].[select_product] Script Date: 03/31/2018 13:10:23 ******/SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOcreate proc [dbo].[select_product]asbeginselect P_no,P_name,P_spc,P_type,P_pos from tproductend
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; }
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(); }
6、编写datagridview控件被打击时的事件,也就是我们前面提到的“选择”功熹栳缂靖能private void dataGridView1_CellContentClick(object sen颊俄岿髭der, 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 = ""; } } }
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(); } } }
8、到此,实现了我们删除datagri蟠校盯昂dview上指定栏位的数据,附上完成代码:using System;us足毂忍珩ing 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(); } } }