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. dede图集内容页调用

    {dede:productimagelist} <li> <img src="[field:imgsrc/]" width="92" heig ...

  2. C++之可调用对象

    C++中的可调用对象分为以下几种: 函数 函数指针 lambda表达式 bind创建的对象 重载了函数调用运算符(即“()”)的类 函数.函数指针不再介绍.lambda表达式与bind创建的类参考—— ...

  3. python中mock的使用

    什么是mock? mock在翻译过来有模拟的意思.这里要介绍的mock是辅助单元测试的一个模块.它允许您用模拟对象替换您的系统的部分,并对它们已使用的方式进行断言. 在Python2.x 中 mock ...

  4. JS正则表达式方法

    使用正则表达式的主要有match,exec,test 1.正则表达式方法test测试给定的字符串是否满足正则表达式,返回值是bool类型的,只有真和假. var user_code = $(" ...

  5. MySQL下concat函数中null值问题

    在mysql中,使用CONCAT(str1,str2,...)函数拼接字符串的过程中,如果你拼接的字段当中有值为null,那么拼接的结果就为null 注: select CONCAT(字段1,字段2) ...

  6. jenkins中管理用户

    jenkins中管理用户: 管理用户权限

  7. @Resource与@Autowired注解的区别(转)

    Spring不但支持自己定义的@Autowired注解,还支持由JSR-250规范定义的几个注解.如:@Resource.@PostConstruct及@PreDestroy 1.@Autowired ...

  8. CF687B Remainders Game

      题意:已知n个数,第i个为ci,给定一个数x mod ci的结果,再给点一个k,问能不能知道x mod k的值? 分析:刚看题目的我一脸蒙蔽,对题意有点不理解,能的情况似乎有很多,我该从哪里下手呢 ...

  9. 机器学习之路:python 特征降维 主成分分析 PCA

    主成分分析: 降低特征维度的方法. 不会抛弃某一列特征, 而是利用线性代数的计算,将某一维度特征投影到其他维度上去, 尽量小的损失被投影的维度特征 api使用: estimator = PCA(n_c ...

  10. luogu P3592 [POI2015]MYJ

    题目链接 luogu P3592 [POI2015]MYJ 题解 区间dp 设f[l][r][k]表示区间l到r内最小值>=k的最大收益 枚举为k的位置p,那么包含p的区间答案全部是k 设h[i ...