使用DataGridView进行增删改查,并同步到数据库

使用DataGridView进行增删改查,并同步到数据库

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

窗口展示:

<span>使用DataGridView进行增删改查,并同步到数据库</span>

用户需求:

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启用编辑和删除功能。


代码解析:

<span>使用DataGridView进行增删改查,并同步到数据库</span>

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的功能特别强悍。学无止境!


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/119236.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • 在tcp协议的三次握手中(tcp/ip协议三次握手)

    TCP特性1.确认应答(可靠传输的最核心机制)1.确认应答(可靠传输的最核心机制)可靠传输的最核心机制

  • onpropertychange属性

          当一个input标签的value通过键盘改变后失去焦点的时候,我们可以用onchange捕获事件,IE和FireFox都有效。而通过JavaScript来改变value的时候,onchange无法捕获事件,这时候我们可以用onpropertychange来捕获onpropertychange对于JavaScript和键盘对value的改变都有效。遗憾的是,onpropertychange事件只在IE中有效,FireFox中无效。尽FireFox的oninput可以来弥补(不必失去焦点),但是也仅

  • window.location.href的用法

    window.location.href的用法javascript中的location.href有很多种用法,主要如下。self.location.href="/url"当前页面打开URL页面location.href=&

  • C++类中静态变量和静态方法使用介绍

    C++类中静态变量和静态方法使用介绍刷剑指offer第64题涉及到类内静态成员与方法的知识,有点模糊,找了两篇博客整理一下。转自:https://www.cnblogs.com/sixue/p/3997324.html    最近一直看c++相关的项目,但总是会被c++类中的静态成员变量与静态成员函数的理解感觉很是模糊,不明白为什么类中要是用静态成员变量.于是在网上搜集了一些资料,自己再稍微总结下。静态成员的概…

  • aMule 无法登录服务器问题

    aMule 无法登录服务器问题

  • Java集合List转树结构工具类[通俗易懂]

    Java集合List转树结构工具类[通俗易懂]业务场景:菜单树、组织架构树…..前端要求数据结构为树结构,而后端查出来的是一条一条的数据集,每次都要各种递归遍历很麻烦,特此写了一个工具类来解决.三个注解:importjava.lang.annotation.ElementType;importjava.lang.annotation.Retention;importjava.lang.annotation.RetentionPolicy;importjava.lang.annotation.Target;/***@a

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号