C#对DataGridView进行添加、修改、删除数据操作



数据库用的是本地服务器(MySql):

设定全局变量:

        MySqlConnection conn;
        MySqlDataAdapter adapter;
        MySqlTransaction trans;

1.  // 数据库联接

        private System.Data.DataTable dbconn(string strSql)
        {
            string strconn = "host=localhost;database=test;user id=root;password=";
            conn = new MySqlConnection();
            conn.ConnectionString = strconn;
            conn.Open();
            this.adapter = new MySqlDataAdapter(strSql, conn);
            System.Data.DataTable dtSelect = new System.Data.DataTable();
            int rnt=this.adapter.Fill(dtSelect);
            conn.Close();
            return dtSelect;
                              
        }

2.       //设定DataGridView的样式 

       private void setDgStyle()
        {
            this.dgselect.Columns.Clear();

            DataGridViewCheckBoxColumn colDel = new DataGridViewCheckBoxColumn();
            colDel.DataPropertyName = "Del";
            colDel.Name = "Del";
            colDel.Selected = false;
            colDel.FalseValue = "0";
            colDel.TrueValue = "1";
            colDel.Width = 40;
            colDel.SortMode = DataGridViewColumnSortMode.NotSortable;
            colDel.HeaderText = "删除";
            colDel.HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
            colDel.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
            this.dgselect.Columns.Insert(0, colDel);

            DataGridViewTextBoxColumn colID = new DataGridViewTextBoxColumn();
            colID.DataPropertyName = "ProductsSpecID";
            colID.Name = "ProductsSpecID";
            colID.HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
            colID.HeaderText = "产品规格ID";
            colID.Width = 160;
            this.dgselect.Columns.Insert(1, colID);

            DataGridViewTextBoxColumn colNM = new DataGridViewTextBoxColumn();
            colNM.DataPropertyName = "ProductsSpec";
            colNM.Name = "ProductsSpec";
            colNM.HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
            colNM.HeaderText = "产品规格名称";
            colNM.Width = 160;
            this.dgselect.Columns.Insert(2, colNM);

            DataGridViewTextBoxColumn colUnit = new DataGridViewTextBoxColumn();
            colUnit.DataPropertyName = "ProductsSpecUnit";
            colUnit.Name = "ProductsSpecUnit";
            colUnit.HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
            colUnit.HeaderText = "产品规格单位";
            colUnit.Width = 180;
            this.dgselect.Columns.Insert(3, colUnit);

            DataGridViewTextBoxColumn colPID = new DataGridViewTextBoxColumn();
            colPID.DataPropertyName = "ProductsID";
            colPID.Name = "ProductsID";
            colPID.HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
            colPID.HeaderText = "产品ID";
            colPID.Width = 140;
            this.dgselect.Columns.Insert(4, colPID);

            DataGridViewButtonColumn colButton = new DataGridViewButtonColumn();
            colButton.DataPropertyName = "colSearch";
            colButton.Name = "colSearch";
            colButton.HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
            colButton.HeaderText = "Button";
            colButton.Width = 80;
            this.dgselect.Columns.Insert(5, colButton);

            this.dgselect.RowHeadersWidth = 15;
            this.dgselect.ColumnHeadersDefaultCellStyle.Font=new System.Drawing.Font("宋体",14);
                    
        }

3.   //修改数据,并将数据提交到数据库

private Boolean dbUpdate()
        {
            string strSql = "select ProductsSpecID,ProductsSpec,ProductsSpecUnit,ProductsID from                       tbl_product_detail_master";
            System.Data.DataTable dtUpdate = new System.Data.DataTable();
            dtUpdate = this.dbconn(strSql);
            dtUpdate.Rows.Clear();

            System.Data.DataTable dtShow = new System.Data.DataTable();
            //dtShow = (DataTable)this.bindSource.DataSource;
            dtShow = (System.Data.DataTable)this.dgselect.DataSource;

            int p1 = dtShow.Rows.Count;
           // try
           // {

                for (int i = 0; i < dtShow.Rows.Count; i++)
                {
                   DataRowState rowState=new DataRowState();
                   rowState=dtShow.Rows[i].RowState;
                   if (rowState==DataRowState.Added || rowState==DataRowState.Detached || rowState==DataRowState.Modified)
                    {

                        if (this.dgselect["Del", i].Value.ToString() == "1")
                        {
                            dtShow.Rows[i].Delete();
                        }
                    }
                }
               
            for (int i = 0; i < dtShow.Rows.Count; i++)
            {
                dtUpdate.ImportRow(dtShow.Rows[i]);
            }
            int num = dtUpdate.Rows.Count;
            try
            {
                this.conn.Open();
               
                trans = this.conn.BeginTransaction();

                MySqlCommandBuilder CommandBuiler;
                CommandBuiler = new MySqlCommandBuilder(this.adapter);

                this.adapter.Update(dtUpdate);
                trans.Commit();
                this.conn.Close();

            }
            catch ( Exception  ex)
            {
                MessageBox.Show(ex.Message.ToString());
                trans.Rollback();
                return false;
            }

            dtUpdate.AcceptChanges();
             return true;

        }

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
首先,需要将json文件读入到程序,可以使用Newtonsoft.Json库实现。然后,将json数据绑定到DataGridView控件上面,以实现数据的展示和编辑。对于增删改查操作,可以通过DataGridView控件提供的事件和方法来实现。 下面是一个基本的示例代码: ```csharp using Newtonsoft.Json; using System; using System.Collections.Generic; using System.IO; using System.Windows.Forms; namespace JsonConfigEditor { public partial class MainForm : Form { private string _configFilePath = "config.json"; private List<ConfigItem> _configItems = new List<ConfigItem>(); public MainForm() { InitializeComponent(); } private void MainForm_Load(object sender, EventArgs e) { // 读取配置文件 if (File.Exists(_configFilePath)) { string json = File.ReadAllText(_configFilePath); _configItems = JsonConvert.DeserializeObject<List<ConfigItem>>(json); } // 绑定DataGridView控件 dataGridView1.DataSource = _configItems; } private void btnSave_Click(object sender, EventArgs e) { // 保存配置文件 string json = JsonConvert.SerializeObject(_configItems); File.WriteAllText(_configFilePath, json); } private void dataGridView1_CellValueChanged(object sender, DataGridViewCellEventArgs e) { // 更新配置项 if (e.RowIndex >= 0 && e.ColumnIndex >= 0) { var configItem = _configItems[e.RowIndex]; switch (dataGridView1.Columns[e.ColumnIndex].Name) { case "Key": configItem.Key = dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString(); break; case "Value": configItem.Value = dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString(); break; } } } private void btnAdd_Click(object sender, EventArgs e) { // 添加新的配置项 _configItems.Add(new ConfigItem { Key = "", Value = "" }); dataGridView1.DataSource = null; dataGridView1.DataSource = _configItems; } private void btnDelete_Click(object sender, EventArgs e) { // 删除的配置项 foreach (DataGridViewRow row in dataGridView1.SelectedRows) { _configItems.RemoveAt(row.Index); } dataGridView1.DataSource = null; dataGridView1.DataSource = _configItems; } private void btnSearch_Click(object sender, EventArgs e) { // 查找关键字匹配的配置项 string keyword = txtKeyword.Text.Trim(); if (!string.IsNullOrEmpty(keyword)) { var result = _configItems.FindAll(item => item.Key.Contains(keyword) || item.Value.Contains(keyword)); dataGridView1.DataSource = null; dataGridView1.DataSource = result; } else { dataGridView1.DataSource = null; dataGridView1.DataSource = _configItems; } } } public class ConfigItem { public string Key { get; set; } public string Value { get; set; } } } ``` 在这个示例代码,我们使用了一个List<ConfigItem>来存储读入的json数据,并将其绑定到了DataGridView控件上。然后,我们实现了一些按钮的点击事件,用于添加删除、保存、查找配置项。在DataGridView控件的CellValueChanged事件,我们可以捕获用户对配置项的修改,并将其同步到_configItems列表。最后,在保存配置文件时,我们将_configItems序列化为json格式,并写入到磁盘文件

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值