csharp DataTable and DataGridView delete a Row

本文详细介绍了如何使用DataTable获取数据,并通过DataTable操作实现DataGridView中行的增删改查。重点探讨了移除行时可能出现的问题及解决方案,同时提供了实例代码帮助理解。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

                    //DataTable 得到標題
                    //締友計算機技術有限公司 塗聚文
                    //foreach (DataColumn column in dt.Columns)
                    //{
                    //    selectDt.Columns.Add(column.ColumnName, column.DataType);
                    //}
                    //DataTable 移動行 delete或 Remove 可以移除,但會出現問題 塗聚文注 20120808
                    //foreach (System.Data.DataRow rowIndex in removeRowIndex)
                    //{
                    //    dt.Rows.Remove(rowIndex);
                    //} 
                    //foreach (DataGridViewRow item in this.dataGridView1.SelectedRows) 
                    //{ 
                    //    dataGridView1.Rows.RemoveAt(item.Index); 
                    //} 


                    //DataGridView指定移除行
                    List<DataGridViewRow> removeRowIndex = new List<DataGridViewRow>();
                    for (int i = 0; i < dataGridView1.Rows.Count; i++)
                    {
                        if (!list.Contains(dataGridView1.Rows[i].Cells[0].Value.ToString()))
                        {
                            removeRowIndex.Add(dataGridView1.Rows[i]);
                        }
                    }
                    //DataGridView選擇移除
                    //foreach (DataGridViewRow row in dataGridView1.SelectedRows)
                    //{
                    //    dataGridView1.Rows.Remove(row);
                    //}

                    foreach (DataGridViewRow dr in removeRowIndex)
                    {

                        dataGridView1.Rows.Remove(dr);

                    }


DataGridView 是 Windows 窗体中的一个控件,用于展示和编辑数据的表格。DataTable 是一个数据集中的一张表,用于存储和操作数据。DataGridViewDataTable 可以结合使用,对数据库进行增删改查操作。 首先,可以通过连接数据库并执行 SQL 查询语句,将查询结果存储在 DataTable 中。然后,将 DataTable 的数据绑定到 DataGridView 上,从而将查询结果展示在表格中。 ``` csharp SqlConnection connection = new SqlConnection(connectionString); DataTable dataTable = new DataTable(); try { string query = "SELECT * FROM 表名"; SqlCommand command = new SqlCommand(query, connection); SqlDataAdapter adapter = new SqlDataAdapter(command); connection.Open(); adapter.Fill(dataTable); dataGridView.DataSource = dataTable; } catch (Exception ex) { MessageBox.Show("查询出错:" + ex.Message); } finally { connection.Close(); } ``` 其次,可以对 DataGridView 中的数据进行增删改操作。通过修改 DataTable 中的数据,并使用 SqlDataAdapter 更新数据库的数据。 ``` csharp DataRow newRow = dataTable.NewRow(); // 设置 newRow 的值 dataTable.Rows.Add(newRow); // 添加新行 DataRow row = dataTable.Rows[0]; // 修改 row 的值 row.Delete(); // 删除行 try { string updateQuery = "UPDATE 表名 SET 列名 = '新值' WHERE 条件"; SqlCommand updateCommand = new SqlCommand(updateQuery, connection); SqlDataAdapter adapter = new SqlDataAdapter(); adapter.UpdateCommand = updateCommand; int rowsAffected = adapter.Update(dataTable); } catch (Exception ex) { MessageBox.Show("更新出错:" + ex.Message); } finally { connection.Close(); } ``` 最后,可以通过 DataGridView 的筛选功能进行数据的查询。只需要在 DataGridView 绑定的 DataTable 上使用 Select 方法进行查询,并将查询结果重新绑定到 DataGridView 上即可。 ``` csharp try { DataRow[] rows = dataTable.Select("列名 = '值'"); DataTable queryResult = rows.CopyToDataTable(); dataGridView.DataSource = queryResult; } catch (Exception ex) { MessageBox.Show("查询出错:" + ex.Message); } ``` 使用 DataGridViewDataTable 对数据库进行增删改查,可以方便地操作和展示数据,提升用户的数据交互体验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值