苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

分布式系统框架(V2.0) 轻松承载百亿数据,千万流量!讨论专区 - 源码下载 - 官方教程

HttpHelper爬虫框架(V2.7-含.netcore) HttpHelper官方出品,爬虫框架讨论区 - 源码下载 - 在线测试和代码生成

HttpHelper爬虫类(V2.0) 开源的爬虫类,支持多种模式和属性 源码 - 代码生成器 - 讨论区 - 教程- 例子

查看: 17653|回复: 0

[编程百科] winfrom运用datagridview绑定数据源实时更新数据

[复制链接]
发表于 2016-6-6 13:39:40 | 显示全部楼层 |阅读模式
    我们知道,当datagridview指定了数据源datatable之后,设置datagridview的editmode属性可以实现单击编辑的功能(除 EditProgrammatically 之外,所有 DataGridViewEditMode 值都允许用户通过双击单元格来开始编辑该单元格),此时我们在单击某一行某一列时并且修改了该单元格的值时就会动态的反应到数据源中。例如;
[C#] 纯文本查看 复制代码
this.dataGridView1.DataSource = dt;

    那么dt中对应的datarow值就会更改,而且该行datarow对应的RowState = Modified,下面我们就可以使用SqlDataAdapter来进行更新操作,sqlada.Update(dt)方法会自动去检索RowState = Modified的行并更新该行至数据库中。
    我们这样初始化SqlDataAdapter:
[C#] 纯文本查看 复制代码
 SqlCommand cmmd = new SqlCommand("select * from ais order by id desc", DBProc.createConnection());
    SqlDataAdapter     sqlada = new SqlDataAdapter(cmmd);

    在多次调试时,始终会抛异常提示没有设置updatecommand的值,后来百度了一下,发现确实需要赋值,但是.net给了我们一个简单的方法,那就是可以用SqlCommandBuilder类(自动生成单表命令,用于将对 System.Data.DataSet 所做的更改与关联的 SQL Server 数据库的更改相协调),SqlCommandBuilder类会自动生成更新命令,就不必这么麻烦的去手动写命令了。下面是SqlDataAdapter正确的实例代码:
[C#] 纯文本查看 复制代码
public SqlDataAdapter GetMySqldataAdapter()
        {           SqlDataAdapter     sqlada;
            if (sqlada != null)
            {
                return sqlada;
            }
            else
            {
                SqlCommand cmmd = new SqlCommand("select * from ais order by id desc", DBProc.createConnection());
                sqlada = new SqlDataAdapter(cmmd);
                SqlCommandBuilder scb = new SqlCommandBuilder(sqlada);
                sqlada.UpdateCommand = scb.GetUpdateCommand();

            }
            return sqlada;
        }

    如果不指定updatecommand会报异常,同时你所绑定的表必须要有主键。
    如此在数据进行更改时,我们就可以调用方法sqlada.Update(dt)来进行实时的批量更新操作了。





1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

QQ|手机版|小黑屋|手机版|联系我们|关于我们|广告合作|苏飞论坛 ( 豫ICP备18043678号-2)

GMT+8, 2024-12-29 02:23

© 2014-2021

快速回复 返回顶部 返回列表