DataGridView的属性:
AllowUserToAddRows:如果为true允许用户添加行,false不允许用户添加行
ReadOnly:true表示只读、不能修改单元格中的值,false可以对单元格进行修改
SelectionMode:FullRowSelect表示点击单元格选择整行
MultiSelect:true表示可以选多行,false表示不可以选多行
DataSource:绑定数据源
Colunms:列的集合

DataGridView中列的属性:
DataPropertyName:设置要和数据源中的哪个列进行绑定
HeaderText:设置当前列的名称
Visible:设置当前列是否可见
Frozen:设置当前列是否冻结(与excel中的冻结窗体类似)
ReadOnly:设置当前列是否只读

获取选中的行,列的单元格

this.dgvShow.CurrentRow.Cells[0].Value.ToString();//获取dgv里面选中的列的第一个值

//SelectedRows被选中的行的集合,SelectedRows[0]获取集合中的第一行
 //Cells代表数据行中单元格的集合,Cells[0]获取第一个单元格
  this.dgvStudents.SelectedRows[0].Cells[0].Value.ToString();

public partial class DataGridView的使用 : Form
    {
        public DataGridView的使用()
        {
            InitializeComponent();
        }

SqlDataAdapter sda = null;
        DataSet ds = null;

//数据源为DataTable
        //private void DataGridView的使用_Load(object sender, EventArgs e)
        //{
        //    string sql = "select StuNo,StuName,StuAge,StuSex from Student";
        //    SqlConnection conn = DBHelper.GetConnection();
        //    sda = new SqlDataAdapter(sql, conn);
        //    ds = new DataSet();
        //    sda.Fill(ds);
        //    DataTable table = ds.Tables[0];
        //    //给DataGridView绑定数据源
        //    this.dgvStudents.DataSource = table;
        //}

//数据源为DataView
        private void DataGridView的使用_Load(object sender, EventArgs e)
        {
            string sql = "select StuNo,StuName,StuAge,StuSex from Student";
            SqlConnection conn = DBHelper.GetConnection();
            sda = new SqlDataAdapter(sql, conn);
            ds = new DataSet();
            sda.Fill(ds);
            DataTable table = ds.Tables[0];
            //给DataGridView绑定数据源
            DataView dv = table.DefaultView;
            dv.Sort = "StuAge desc";//排序
            dv.RowFilter = "StuAge>22";//筛选行
            this.dgvStudents.DataSource = dv;
        }

//批量修改
        //优点:功能强大、操作简单、代码简洁
        //缺点:1、只能操作一个表  2、操作的数据集中必须包含主键
        private void btnUpdate_Click(object sender, EventArgs e)
        {
            SqlCommandBuilder builder = new SqlCommandBuilder(sda);
            sda.Update(ds);
            MessageBox.Show("修改成功!");
        }
    }

DataGridView的使用和批量修改的更多相关文章

  1. c# 适配器批量修改

    DataTable dt; //在方法外部申明数据表SqlDataAdapter adapter; //在方法外部申明数据适配器 查询方法adapter = new SqlDataAdapter(Sq ...

  2. mac linux rename命令行批量修改文件名

    我的mac使用命令行批量修改名字时发现居然没有rename的指令: zsh: command not found: rename 所以使用HomeBrew先安装一下: ➜ ~ brew install ...

  3. MYSQL批量修改表前缀与表名sql语句

    修改表名 ALTER TABLE 原表名 RENAME TO 新表名; 一句SQL语句只能修改一张表 show tables; 1. SELECT CONCAT( 'ALTER TABLE ', ta ...

  4. 使用powershell批量修改文本为utf8

    根据上一篇powershell生成pro的方法,增加一个批量修改文本文件为utf8格式的方法 $incPath = dir -filter "*.c" -Recurse $temp ...

  5. nodejs 批量修改、删除

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAB4AAAAQhCAIAAABDaAVHAAAgAElEQVR4nOydeXxU5aH359733vd9b/ ...

  6. iOS --- DIY文件名批量修改

    批量修改文件名: // 1.创建文件管理 NSFileManager *filemanager =[NSFileManager defaultManager]; // 2. 获得所有文件夹路径 NSS ...

  7. ansible非root用户批量修改root密码

    前言: 由于线上服务器密码长久没有更新,现领导要求批量更换密码.线上的之前部署过salt,但由于各种因素没有正常使用. 使用自动化工具批量修改的计划搁浅了,后来领导给了个python多线程修改密码脚本 ...

  8. Python 批量修改文件名

    最近下载了几部美剧(越狱.迷失.权利的游戏......),每集文件名都好长好长..想改短一些,但一个一个改太累了,于是写了个脚本来实现批量修改: 修改前文件名: 修改后文件名: 代码实现: #enco ...

  9. 批量修改sql server 2008的架构

    --批量修改架构.名称为XJADMINATT的所有表修改为dbo-- --把执行的结果,拷贝到命令行,执行命令即可-- declare @name sysname declare csr1 curso ...

随机推荐

  1. FutureTask解析(转)

    站在使用者的角度,future是一个经常在多线程环境下使用的Runnable,使用它的好处有两个:1. 线程执行结果带有返回值2. 提供了一个线程超时的功能,超过超时时间抛出异常后返回. 那,怎么实现 ...

  2. Java学习笔记——泛型

    假定T不仅要指定接口的类继承.使用下面的方式: public class some<T extends Iterable<T> & Comparable<T>&g ...

  3. CentOS 7 / RHEL 7 上安装 LAMP + phpMyAdmin

    原文 CentOS 7 / RHEL 7 上安装 LAMP + phpMyAdmin 发表于 2014-11-02 作者 Haoxian Zeng 更新于 2014-12-12   之前根据在 Lin ...

  4. Claris and XOR

    Problem Description Claris loves bitwise operations very much, especially XOR, because it has many b ...

  5. javascript系列之this

    原文:javascript系列之this 引言 在这篇文章里我们将会讨论与执行上下文直接相关的更多细节.讨论的主题就是this关键字.实践证明,这个主题是足够难的并且在不同的执行上下文中判定this的 ...

  6. MySql创建一个存储过程

    MySQL 存储过程是从 MySQL 5.0 新功能.存储过程的长处有一箩筐.只是最基本的还是运行效率和SQL 代码封装. 特别是 SQL 代码封装功能,假设没有存储过程,在外部程序訪问数据库时(比如 ...

  7. C#记录日志、获取枚举值 等通用函数列表

    )             {                 ] >=  && ipvals[] <=                  && ipval ...

  8. Java 测试并行编程(三)

    有很多其他的交替运行 因为在并行代码中的错误一般是低概率事件.因此,试运行并发差错时需要反复多次,但是,有很多方法可以提高发现这些错误的概率 ,在前面提到的,在多处理器系统.假设 线程的数量,那么 与 ...

  9. Unity3D专访——真正的面试

    本来想写一系列的,一半的攻击,现在面试的水.人之奸,用大哥的话说,要走新手是做螺丝钉和抹布用的.还有一半是对出出学校的或者是自废武功转3d的朋友们提供一个比較有价值的參考. 只是我时间实在仓促.没有保 ...

  10. XSS Overview

    什么是XSS? 跨站脚本攻击(Cross Site Scripting):攻击者往Web页面里插入恶意脚本,当用户浏览该页面时,嵌入页面的脚本代码会被执行,从而达到恶意攻击用户的特殊目的.恶意的内容通 ...