SqlCommandBuilder的讨论

之前也看过别人的解释,总感觉解释的不太理想,当然我自己的解释我尽量解释理想点,SqlCommandBuilder 是提供给外界对数据库的反操作的,如果只是对数据库的一个提取的话,那么用下面的代码足以

        public DataSet getDataset(string sqlstr)
        {
            Conn.Open();
            SqlDataAdapter da = new SqlDataAdapter(sqlstr,Conn);
            DataSet ds = new DataSet();
            da.Fill(ds);
            Conn.Close();
            return ds;
        }

但是如果数据在 dataGridView中显示出来,而且我们又要求在 dataGridView中能修改数据库的话,我们必须要重新进行一次操作,只是用上面的显示语句是不够的。如果是你,你要怎么做呢?当然我会重新引入一个升级的语句,但是当我引入升级的语句的时候,我要对数据库重新操作(对内存中的数据经行操作DATESET),注释:DATASET是可以脱离SQL再任何环境下运行的数据,因为他是XML格式的,这时候我们需要引入SqlCommandBuilder,这个的作用是对dataset的一次升级,(不应该是adaper,因为后面我们要对da.Update(ds);),有一点是肯定的,adapter.Update()肯定会对dataGridView进行监控,你可以试下如果我们没有触碰dataGridView中的任何控件(当然点击一下也会不行),这样程序是不会报错的。

总结: SqlCommandBuilder是对内存中(即DATASET)的一个监控,因为dataGridView的源头是DATASET(见下面程序),如果你没有任何触发的话,我是不会运行的。如果你有更改dataGridView的话,那么就触发了SqlCommandBuilder这个类,也就是说dataGridView的触控不会影响到DATASET(因为DATASET是源头,下游的更改不会影响到水源地的,自己理解的),所以我们需要 SqlCommandBuilder来监控dataGridView并且来更改DATASET

  DataSet1 = DataAccess1.getDataset(sqlstr);
            dataGridView1.DataSource = DataSet1.Tables[0];
 

以上是我自己的理解

——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————

当然另外一种理解说是“SqlDataAdapter不会自动生成实现DataSet的更改与关联的 SQL Server 实例之间的协调所需的 Transact-SQL 语句。”adaper只是个连接器,但是你想修改数据库的话要提供另外一个语句来修改他(但是我的理解是修改DATASET然后用UPDATE来升级ADAPER,数据库自然就修改了)

  public void updatedata(DataSet ds,string sqlstr)
        {
            Conn.Open();
            SqlDataAdapter da = new SqlDataAdapter(sqlstr, Conn);

            //SqlCommandBuilder cb = new SqlCommandBuilder(da);

            da.Update(ds);

            Conn.Close();

        }
时间: 2024-10-01 07:12:04

SqlCommandBuilder的讨论的相关文章

《虚拟人》:准科幻,讨论人的记忆与思维能力能够复制到机器之后的种种场景。3星。

感觉实质内容更像科幻小说(形式上不像).一开始判断人类将可以把大脑中的记忆与思维能力复制到软件,后面大部分都基于这个假设来讨论由此带来的社会.法律.宗教方面的各种可能出现的场景.3星. 以下是书中一些内容的摘抄: 1:事实上,有人与我持相同看法.本书内容大部分来自2003—2011年间我赞助过的座谈会和研讨会,书中观点参考了当今诸多颇具创造性.技术性和科学性的研究先锋们的观点.#286 2:“有重要证据显示,人类不是唯一拥有能够产生意识神经基质的物种.非人类动物,包括所有哺乳动物和鸟类.许多其他

Hadoop、Spark、HBase与Redis的适用性讨论(全文)

最近在网上又看到有关于Hadoop适用性的讨论[1].想想今年大数据技术开始由互联网巨头走向中小互联网和传统行业,估计不少人都在考虑各种"纷繁复杂"的大数据技术的适用性的问题.这儿我就结合我这几年在Hadoop等大数据方向的工作经验,与大家讨论一下Hadoop.Spark.HBase及Redis等几个主流大数据技术的使用场景(首先声明一点,本文中所指的Hadoop,是很"狭义"的Hadoop,即在HDFS上直接跑MapReduce的技术,下同). 我这几年实际研究和

课堂讨论--beta版总结讨论

在课堂上,我们团队针对前段时间开发过程中存在的问题进行了讨论. 回顾发现,我们存在的问题有: (1)上传图片时无法存入数据库,所以无法再主页上显示图片. (2)无法进行注册登录,不能限制用户权限. (3)没有界面美化,所以界面很简洁. (4)没有实现智能推送功能. 我们挑选了前三个问题当做我们的下一阶段目标,因为智能推送功能暂时不知道如何实现,所以将前三个作为重点.

从三栏自适应宽度布局到css布局的讨论

如何实现一个三栏自适应布局,左右各100px,中间随着浏览器宽度自适应? 第一个想到的是使用table布局,设置table的宽度为100%,三个td,第1个和第3个固定宽度为100px,那么中间那个就会自适应了,下面是一个实时的demo: left  middle  right  但是table布局是不推荐的,table布局是css流行之前使用的布局,有很多缺点:当table加载完之前,整个table的都是空白的,table将数据和排版参和在一起,使得页面混乱,并且table布局修改排版十分麻烦

布吉岛队——第二次小组讨论

经过第一次的讨论后,我们又详细的讨论了一下我们具体要做的系统是餐厅点单系统 接下来我们还讨论了一个问题是一个用户的基本信息和一个餐厅的菜的基本信息所需要包括哪些函数. 讨论出的结果有以下一些函数名: 输入用户信息(姓名.联系方式.会员卡号.积分).删除用户信息 点菜菜单(菜名.价格) 账单(菜名.数量.单价.消费总计) 上菜情况(已上菜.未上菜) 预约情况(桌子是否被预订) 会员卡折扣情况 会员卡积分情况(每消费一元则得到一个积分)...... 接下来几个月做的系统的主要功能就是这两个方面,到时

.Net学习难点讨论系列17 - 线程本地变量的使用

*:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: 0 !important; } /* BLOCKS =============================================================================*/ p, blockquote, ul, ol, dl, table, pre { margin: 15px 0; } /* HEAD

关于洁净室负荷估算的讨论

---恢复内容开始--- 一些讨论 问题:经常和行家们谈起设计是,都遇到这样的问题:你的设计每平方有多大的冷量?我统计后有时也不敢拍胸口说可以达到效果.有谁可以给我提供这些估算值? 普通办公室100-150w/m2 一般厂房200-250w/m2 洁净厂房350-400左右w/m2 至于是否要考虑其它因素,小弟真的想不到了 洁净厂房要分产品和级别.有了产品才能定新风量大概多少. 要看新风比,如果有防爆的事故排风.那就取450W/M2,如果没有350W/M2应该足够 洁净室的新风和排风对洁净度有很

软件需求分析课堂讨论01

课堂讨论 分组:每4人一组 内容: 某大学为进一步推进无纸化考试,欲开发一考试系统.系统管理员能够创建专业方向.课程编号.任课教师等相关考试基础信息.教师和考生进行考试相关工作.系统与考试有关的主要功能如下: (1)考试设置:教师制定试题(题目和答案),制定考试说明.考试时间和提醒时间等考试信息,录入参加考试的学生信息,并分别进行存储. (2)显示并接收解答.根据教师设定的考试信息,在考试有效时间内向学生显示考试说明和题目,根据设定的提醒时间进行提醒,并接收学生的解答. (3)处理解答.根据答案

软件需求与分析课堂讨论一

课堂讨论 分组:每4人一组 内容: 某大学为进一步推进无纸化考试,欲开发一考试系统.系统管理员能够创建专业方向.课程编号.任课教师等相关考试基础信息.教师和考生进行考试相关工作.系统与考试有关的主要功能如下: (1)考试设置:教师制定试题(题目和答案),制定考试说明.考试时间和提醒时间等考试信息,录入参加考试的学生信息,并分别进行存储. (2)显示并接收解答.根据教师设定的考试信息,在考试有效时间内向学生显示考试说明和题目,根据设定的提醒时间进行提醒,并接收学生的解答. (3)处理解答.根据答案