vb.net2003中,利用datagrid更新数据

datagrid|数据

运行环境说明:Windows 2000 Advanced Server +VB.NET2003+MS SQL SERVER 2000
 第1部份 建立数据库student,建立表stuinf(有两种方式)

 1.1 方式一:用查询分析器建库,语句如下:

 use master

 go if exists (select * from dbo.sysdatabases where name = 'student') drop database student

 gocreate database student

 gouse student

 goCREATE TABLE stuinf(stuno varchar(20) PRIMARY KEY,stuname varchar(20) NOT NULL,)

 

 1.2 方式二:也可以在企业管理器里面直接建立名为student的数据库,然后建立名为stuinf的表,表中有2个字段:stuno、stuname

 字段     数据类型   长度    说明stuno    varchar        20       主键;学生学号stuname  varchar     20        学生姓名

 

 第2部份 窗体设计

 

2.1 打开Miscrosoft Visual Studio.NET,选择新建项目,在项目类型中选择Visual Basic 项目,在模板中选择Windows 应用程序,在名称中输入frmupdate,选择保存位置。再点击确定,打开设计窗口,向窗体中添加一个DataGrid控件和Button控件。Datagrid控件为“自动套用格式(A)”中的“彩色型2”;设置Button属性,Button.text=更新数据。

 

 

 第3部份 代码Imports System.Data.SqlClient '引用类'Public Class Form1    Inherits System.Windows.Forms.Form    Dim sqlconn As New SqlClient.SqlConnection("Server=localhost;DataBase=student;integrated security=true;")  '定义sqlconn为SqlConnection类一个连接    Dim adapter As SqlDataAdapter '定义数据适配器'    Dim ds As DataSet '定义数据集''窗体代码略Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load        Try            'select语句中一定要包含主键字段,否则无法更新;在表stuinf中,字段stuno是主键            adapter = New SqlDataAdapter("select stuno'学号',stuname'姓名' from stuinf", sqlconn)            ds = New DataSet            adapter.Fill(ds, "student") '往适配器中添加数据集,表名为student            DataGrid1.SetDataBinding(ds, "student") '把datagrid控件绑定数据集        Catch sqlExc As Exception '异常处理            MessageBox.Show(sqlExc.ToString, "SQL 异常错误!", _                                    MessageBoxButtons.OK, MessageBoxIcon.Error)            Exit Sub        End Try

 End Sub

 

     Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click        Try            Dim cBuilder As New SqlCommandBuilder(adapter) '创建一个CommandBuilder对象            adapter.UpdateCommand = cBuilder.GetUpdateCommand '为数据适配器adapter的更新命令赋值            adapter.Update(ds, "student") '更新数据集            ds.Clear() '清空当前数据集            adapter.Fill(ds, "student") '重新绑定数据适配器            DataGrid1.SetDataBinding(ds, "student") '在datagrid中显示更新后数据            MsgBox("更新数据成功!", MsgBoxStyle.OKOnly, "请确认") '提示更新数据成功        Catch sqlExc As Exception '异常处理            MessageBox.Show(sqlExc.ToString, "SQL 异常错误!", _                                    MessageBoxButtons.OK, MessageBoxIcon.Error)            Exit Sub        End Try

     End SubEnd Class

 

 

 

 第4部份 效果图当有相同的学号时,异常处理程序提示不能插入重复值,更新不成功。如下图:第5部份 总结

 5.1 填充的数据集中的数据表一定要包含原表(要更新的表)的主键,即select语句中一定要包含主键字段,否则无法更新;5.2 commandbuilder类只能在datatable映射到单个数据表的时候使用。这意味着如果数据库查询的是两个或者更多的表的联接,就不能使用commandbuilder类;5.3 在本例子中,字段stuno'学号'是主键,假如用户更改学号,导致有两个一样的学号时,异常处理会提示“不能插入重复值”,这时更新失败。

 第6部份 感慨6.1我参考了网上的部分资料,在此深表感谢提供相关资料的网友。6.2感谢网友的支持,给我回帖。原帖为:   http://community.csdn.net/Expert/topic/4150/4150525.xml?temp=.17512156.3在我急需解决这个问题,着急的时候,得到了高手的提示,终于解决了问题,真的有一种“山穷水尽疑无路,柳暗花明又一村”的感觉,顿时豁然开朗了。真的不知道该怎么感谢你们这些不曾谋面的朋友!6.4我发这篇文章的目的是希望能够起到一个抛砖引玉的作用,望各路高手不吝赐教。6.5如有哪位网友需要我做的这个例子,可以给我留下邮箱号,我会尽最快的速度发到你们的邮箱里。

时间: 2024-07-31 11:25:25

vb.net2003中,利用datagrid更新数据的相关文章

vs.net beta 2中利用DataGrid分页详解

datagrid|分页|详解 beta 2中利用DataGrid分页说明:1.本篇文章只适用于初学vs.net者,尤其对vs.net环境还不是很熟悉者.2.需要的环境:win2000, sql server2000, vs.net beta2步骤:1. 打开 VS.NET Beta 2:2. 建立一个 C# ASP.NET Web 应用程序 工程:3.从工具箱->数据 页拖动SqlDataAdapter 到Web Form设计窗口:技巧:CTRL-ALT-X  可以快速切换到工具箱界面:4.这时

ASP.NET中利用DataGrid的自定义分页功能

asp.net|datagrid|分页 ASP.NET中利用DataGrid的自定义分页功能和存储过程结合实现高效分页 ASP.Net中的DataGrid有内置分页功能, 但是它的默认的分页方式效率是很低的,特别是在数据量很大的时候,用它内置的分页功能几乎是不可能的事,因为它会把所有的数据从数据库读出来再进行分页, 这种只选取了一小部分而丢掉大部分的方法是不可去取的. 在最进的一个项目中因为一个管理页面要管理的数据量非常大,所以必须分页显示,并且不能用DataGrid的内置分页功能,于是自己实现

android Fragment中嵌入ListView ,更新数据后,getview()没被调用

问题描述 android Fragment中嵌入ListView ,更新数据后,getview()没被调用 我是在vieapage里面嵌套listview的.viewpager是用fragment写的.listview是简单Adapter写的 解决方案 你刷新时怎么写的,如果制定了adapter,调用adapter的notifyDataSetChanged就可以了,除非你的数据源中没有数据 解决方案二: 先看listview是否绑定了adapter,然后看是否调用了notifyDataSetCh

vb.net中datagridview如何更新多个关联数据表?

问题描述 我在datagridview中dataset数据集里有两个关联表,两张表在一个datagridview中显示.编辑.请问我怎么修改数据后更新到源数据表呢?SqlCommandBuilder只能对一个数据表进行更新.用vb.net语句如果写呢? 解决方案 解决方案二:该回复于2009-08-05 11:11:13被版主删除解决方案三:哪位大侠,帮忙看看啊解决方案四:你可以分别更新表的解决方案五:怎么写代码呢?解决方案六:你的意思是SqlDataAdapter.update(dataset

初谈ADO.NET中利用DataAdapter进行数据操作

ado|数据     对于刚刚学习ADO.NET数据访问技术的来说,DataAdapter也许往往会令他们感到迷惑,特别是习惯于利用托拽DataAdapter控件进行开发的朋友,通过这一ADO.NET数据访问控件,我们甚至不用书写一行代码,就能完成各种需要的数据访问和操作,然而在享受快捷便利的同时,心中却总挂着一丝意犹未尽的感觉.DataAdapter控件在背后为我们做了怎样的工作?弄清楚这一点,对于喜欢探根究底的朋友,不仅乐哉悠哉,也有利于我们更它的理解ADO.NET的数据访问机制:同时对于.

ASP.NET中利用DataGrid实现高效分页

asp.net|datagrid|分页 ASP.Net中的DataGrid有内置分页功能, 但是它的默认的分页方式效率是很低的,特别是在数据量很大的时候,用它内置的分页功能几乎是不可能的事,因为它会把所有的数据从数据库读出来再进行分页, 这种只选取了一小部分而丢掉大部分的方法是不可去取的. 在最进的一个项目中因为一个管理页面要管理的数据量非常大,所以必须分页显示,并且不能用DataGrid的内置分页功能,于是自己实现分页. 下面介绍一下我在项目中用到的分页方法. 当然显示控件还是用DataGri

vb.net-DataGridView中显示不出数据

问题描述 DataGridView中显示不出数据 明明都已经绑定了数据源,且其他数据源都可以显示数据,为什么偏偏这个无法显示? 代码如下: Dim myadpt As SqlDataAdapter = New SqlDataAdapter("select 所有订购商品信息表.商品名称,SUM(所有订购商品信息表.订购数量) from 客户订购信息表,所有订购商品信息表 where 客户订购信息表.订单号=所有订购商品信息表.订单号 GROUP BY 所有订购商品信息表.商品名称", c

MySQL中利用索引对数据进行排序的基础教程_Mysql

MySQL中,有两种方式生成有序结果集:一是使用filesort,二是按索引顺序扫描.利用索引进行排序操作是非常快的,而且可以利用同一索引同时进行查找和排序操作.当索引的顺序与ORDER BY中的列顺序相同且所有的列是同一方向(全部升序或者全部降序)时,可以使用索引来排序.如果查询是连接多个表,仅当ORDER BY中的所有列都是第一个表的列时才会使用索引.其它情况都会使用filesort. MySQL索引通常是被用于提高WHERE条件的数据行匹配或者执行联结操作时匹配其它表的数据行的搜索速度.

如何在存储过程中实现插入更新数据

存储过程的功能非常强大,在某种程度上甚至可以替代业务逻辑层,接下来就一个小例子来说明,用存储过程插入或更新语句. 1.数据库表结构 所用数据库为Sql Server2008. 2.创建存储过程 (1)实现功能: 有相同的数据,直接返回(返回值:0): 有主键相同,但是数据不同的数据,进行更新处理(返回值:2): 没有数据,进行插入数据处理(返回值:1). 根据不同的情况设置存储过程的返回值,调用存储过程的时候,根据不同的返回值,进行相关的处理. (2)下面编码只是实现的基本的功能,具体的Sql代