DataGridView控件的使用

本文介绍了DataGridView控件的使用,包括其属性如Columns、SelectionMode、AutoSizeColumnsMode等,以及如何进行数据源绑定、列数据绑定。同时,讨论了如何处理选中行、单元格编辑和读取,以及控件的删除、更新功能,展示了具体效果。

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

引入控件

在这里插入图片描述

效果:

在这里插入图片描述
属性 列集合 Columns

在这里插入图片描述

列对象 Column

在这里插入图片描述
属性 选择模式 SelectionMode

一般使用整行选中
FullRowSelect

在这里插入图片描述

属性 自动列宽度 AutoSizeColumnsMode

在这里插入图片描述

是否一次可选多个 MultiSelect

在这里插入图片描述
是否可编辑单元格 ReadOnly

在这里插入图片描述
自动列宽度 AutoSizeColumnsMode

在这里插入图片描述
属性 是否包含行标题的列 RowHeadersVisible

在这里插入图片描述
控件绑定数据源

DataGridView对象.DataSource = DataSet对象.Tables[表名称]

为列绑定数据

属性

DataPropertyName

在这里插入图片描述

当前行的类

DataGridViewRow

获取当前行

DataGridView对象.CurrentRow

获取当前选中行的集合

DataGridView.SelectedRows

获取当前行的所有单元格

DataGridView对象.CurrentRow.Cells

获取当前行的所有单元格中下标为n的单元格

DataGirdView对象.CurrentRow.Cells[n]

获取单元格对象的值

DataGirdView对象[列索引,列索引]

获取指定行列得的单元格

DataGiedView对象.CurrentCell

获取单元格所在行的行索引

单元格.RowIndex

获取选中的单元格集合

DataGridView对象.selectedCells

获取选中的单元格集合中第n号索引的单元格

DataGiedView对象.SelectedCells[n]

DataGirdView控件的删 改以及修改行内文字

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.SqlClient;

namespace WindowsFormsApplication18
{
    public partial class Form1 : Form
    {
        SqlDataAdapter adapter;
        DataSet ds = new DataSet();
        SqlConnection conn;
        public Form1()
        {
            InitializeComponent();

        }

        private void Form1_Load(object sender, EventArgs e)
        {
            //加载方法
            loading();
        }
        //加载方法定义
        public void loading() { 
        //数据集
   
        //清空一下仓库
            if (ds.Tables.Count > 0) {
                ds.Tables["hero"].Clear();
            }

        //sql语句

            String sql = "select * from rz";
            

        //连接对象
        //连接类 连接对象名称 = new 连接类(连接字符串)
            String connString = "Data Source=.;Initial Catalog=bg;Integrated Security=True";
            conn = new SqlConnection(connString);



            //小车对象
            //小车类 小车名称 = new 小车类(sql,连接对象)
            adapter = new SqlDataAdapter(sql, conn);

            //把小车卸货到仓库
            adapter.Fill(ds, "hero");



        //核心操作
        //关闭自动列的添加
            dataGridView1.AutoGenerateColumns = false;

        //控件绑定数据源

        //控件对象.DataSource = 仓库.Tables[表名称]
            dataGridView1.DataSource = ds.Tables["hero"];
        }

        private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {

        }

        private void tsmiSubmit_Click(object sender, EventArgs e)
        {
            //更新数据
            //实例化一个更新用的对象
            SqlCommandBuilder buil = new SqlCommandBuilder(adapter);

            

            //小车更新数据
            adapter.Update(ds,"hero");

            //提示内容
            MessageBox.Show("更新成功");
        }

        private void 删除行DToolStripMenuItem_Click(object sender, EventArgs e)
        {
            //最终目的,获得选中行的第一个单元格

            //1.获得选中的行
            DataGridViewRow curentRow = dataGridView1.CurrentRow;

            //2.获得该行的第0号索引的单元格
            DataGridViewCell currentCell = curentRow.Cells["id"];

            //3.获得该单元格的value值
            String value = currentCell.Value.ToString();

            //4.通过连接式删除数据
            //通过连接对象删除这个数据
            String sql = "delete from rz where id =" + value;

            //新建一个执法者
            SqlCommand cmd = new SqlCommand(sql, conn);

            //打开连接
            try
            {
                //可能会出错的问题
                conn.Open();

                // 执法者方法调用
                int n = cmd.ExecuteNonQuery();

                // 输出一下结果
                MessageBox.Show("删除成功,影响行数为:" + n);

                //重新load一下数据
                loading();

            }
            catch 
            {
                //提示出错
                MessageBox.Show("error");
            }
            finally { 
                //提示出错
                conn.Close();
            }

            

            

        }
    }
}

效果展示:

原图

在这里插入图片描述
删除后

在这里插入图片描述
在这里插入图片描述
点击更新后更新数据库

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值