DataGridView控件具有极高的可配置性和可扩展性。它提供有大量的属性、方法和事件,能够用来对该控件的外观和行为进行自己定义。以下通过一个小样例来展示DataGridView进行增删改查,并同步到数据库的功能。

窗口展示:

用户需求:

1.当窗口显示时,将数据库中用户表中的数据显示出来。

2.选中一行,运行删除操作,同一时候在数据库中对应数据被删除。

3.双击某个数据,进行编辑,或者在空白行加入新的数据,然后点击更新,数据库随之更新。

代码展示:

Public Class Form1'代码较简单,没有使用三层架构。
Public DT As DataTable
Public SDA As SqlDataAdapter
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load Dim conn = New SqlConnection("Server=***;DataBase=userinfo;User ID=***;Password=***")
SDA = New SqlDataAdapter("select * from Users", conn)
DT = New DataTable SDA.Fill(DT) '将查到的数据传到DataTable中
DataGridView1.DataSource = DT '将DataTable中的数据传给DataGridView1显示 End Sub
'更新操作
Private Sub btnUpdate_Click(sender As Object, e As EventArgs) Handles btnUpdate.Click Dim SCB = New SqlCommandBuilder(SDA)
SDA.Update(DT)
MsgBox("更新成功") End Sub
'删除操作
Private Sub btnDel_Click(sender As Object, e As EventArgs) Handles btnDel.Click
'删除选中行
DataGridView1.Rows.RemoveAt(DataGridView1.CurrentCell.RowIndex)
'数据库中进行删除
Dim SCB = New SqlCommandBuilder(SDA)
SDA.Update(DT)
MsgBox("删除成功") End Sub
End Class

注意:

1.数据库中对应的表中一定要有主键。

2.DataGridView启用编辑和删除功能。



代码解析:



1.DataSet与DataTable:

DataSet:数据集,简单理解为一个暂时数据库,将数据源的数据保存在内存中,独立于不论什么数据库。一般包括多个DataTable,以及DataTable之间的约束关系。通过 dataset["表名"]得到DataTable 。   



2.SqlDataAdapter:SqlDataAdapter对象名
=  new
SqlDataAdapter(查询用sql语句,数据库连接);

Fill方法向数据表中填充数据。Update方法将数据表中的数据提交到数据库。

3.SqlCommandBuilder对象:

SqlCommandBuilder builder =new SqlCommandBuilder(已创建的DataAdapter对象);

利用SqlCommandBuilder对象可以自己主动生成:INSERT命令、UPDATE命令、DELETE命令。

以上展示的仅仅是冰山一角,DataGridView的功能特别强悍。学无止境!



使用DataGridView进行增删改查,并同步到数据库的更多相关文章

  1. 浅谈dataGridView使用,以及画面布局使用属性,对datagridview进行增删改查操作,以及委托使用技巧

        通过几天的努力后,对datagridview使用作一些简要的介绍,该实例主要运用与通过对datagridview操作.对数据进行增删改查操作时,进行逻辑判断执行相关操作.简单的使用委托功能,实 ...

  2. 用户增删改查 django生命周期 数据库操作

    一 django生命周期 1 浏览器输入一个请求(get/post)2 响应到django程序中3 执行到url,url通过请求的地址匹配到不同的视图函数4 执行对应的视图函数,此过程可以查询数据库, ...

  3. jdbc 增删改查以及遇见的 数据库报错Can't get hostname for your address如何解决

    最近开始复习以前学过的JDBC今天肝了一晚上 来睡睡回笼觉,长话短说 我们现在开始. 我们先写一个获取数据库连接的jdbc封装类 以后可以用 如果不是maven环境的话在src文件下新建一个db.pr ...

  4. Java学生信息增删改查(并没用数据库)

    一个泛型的应用,Java版本增删改查,写的简陋,望批评指正 2016-07-02 很久前写的一个程序了.拿出来存一下,不是为了展示啥,自己用的时候还可以看看.写的很粗糙. import java.io ...

  5. java图书管理的一个小模块(增删改查,不使用数据库)

    图书管理模块:某图书管需要对图书进行信息化管理,要求管理员能够进行新增图书,能按照书名进行模糊查看图书能进行价格统计 系统实现如下:1.新增2.查询3.统计价格 1请输入新书:图书号,书名,作者,价格 ...

  6. WPF DataGrid 数据绑定、样式、分页、增删改查,连接Access数据库

    先上效果图: XAML: <UserControl xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation&q ...

  7. 在Eclipse中对包进行增删改查

    package com.hanqi.test; import java.sql.Connection; import java.sql.DriverManager; import java.sql.R ...

  8. mysql 增删改查最基本用法小结

    目录: 1.新建数据库 2.新建数据表 3.查看表结构 4.增删改查 建立一个数据库students 建立一块数据表class1 内容包括: id 主键 自动编号 无符号位 SMALLINT类型 na ...

  9. java连接mysql以及增删改查操作

    java连接数据库的代码基本是固定的,步骤过程觉得繁琐些,代码记起来对我来说是闹挺.直接上代码: (温馨提醒:你的项目提前导入连接数据库的jar包才有的以下操作 ) class DBConnectio ...

随机推荐

  1. jpql和sql的区别

    项目使用jpa规范 其中既可使用面对对象查询(jpql语句) 又可使用原生sql查询; 1.(经后期验证,jpql都可以) 其中有一个区别是: jpql查询字段为空:  " cr.owner ...

  2. Form 源码

    1. is_valid如果返回值如果为真 证明验证成功 意味着self.is_bound为True 和 self.errors为False def is_valid(self): return sel ...

  3. MySQL学习笔记:计算机服务中找不到MySQL服务

    不知道什么原因,连接了远程服务器之后,本地服务就连接不上. 经排查,发现服务中的MySQL服务居然不见,一番搜索之后,在CMD中进入到MySQL安装目录的bin下执行以下语句: mysqld.exe ...

  4. Django数据库数据表操作

    建立表单 django通过设置类来快速建表,打开models.py 例: from __future__ import unicode_literals from django.db import m ...

  5. 下载Eclipse

    工欲善其事必先利其器,我们学习Java首先要学会下载开发工具,Eclipse就是一个很好的Java语言开发工具,那么我们首先要知道怎么下载Eclipse.相信很多Java书籍都有下载Eclipse的教 ...

  6. 010 secondary namenode(同步元数据和日志)

    1.格式化 首先格式化之后只剩下一个根目录. 格式化后会出现元数据 集群启动之后,元数据放在内存中的(消耗内存中) 格式化后会产生镜像文件fsimage,元数据存储 启动的时候namenode会读取镜 ...

  7. pandas使用总结

    一.pandas简介 Pandas是基于Numpy开发出的,是一款开放源码的BSD许可的Python库,为Python编程语言提供了高性能,易于使用的数据结构和数据分析工具.Pandas用于广泛的领域 ...

  8. Ionic入门九:颜色

    ionic 提供了很多颜色的配置,当然你可以根据自己的需要自定义颜色. <ul class="list color-list-demo"> <li class=& ...

  9. CodeForces - 620C Pearls in a Row 贪心 STL

    C. Pearls in a Row time limit per test 2 seconds memory limit per test 256 megabytes input standard ...

  10. Linux C函数库参考手册

    目录 第1章 字符测试函数 isalnum(测试字符是否为英文字母或数字) isalpha(测试字符是否为英文字母) isascii(测试字符是否为ascii码字符) isblank(测试字符是否为空 ...