You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在VB.NET中结合SQL Server数据库重新加载DataGridView

VB.NET + SQL Server 基础CRUD功能实现指南

嘿,看起来你正在搭建基于VB.NET界面、SQL Server数据库的应用,目标是实现基础的增、存、改、删(CRUD)记录功能对吧?先把你提供的代码片段整理好,再给你一些实用的落地建议:

你的现有代码片段

Imports System.Data
Imports System.Data.SqlClient

Public Class FormCabinet
    'Variable Declaration
    Dim CabinetCommand As SqlCommand
    Dim CabinetAdapter As SqlDataAdapter
    Dim CabinetTable As DataTable
    Dim CabinetManager As CurrencyManager
    Dim M... ' 这里你代码没写完,后续可以补充完整

完善CRUD功能的关键步骤建议

  • 初始化数据库连接:首先要确保你有正确的SQL Server连接字符串,两种常见方式:

    ' Windows身份验证
    Dim connString As String = "Data Source=你的服务器名;Initial Catalog=你的数据库名;Integrated Security=True"
    ' SQL Server身份验证
    ' Dim connString As String = "Data Source=你的服务器名;Initial Catalog=你的数据库名;User ID=用户名;Password=密码"
    
  • 实现查询(读取)功能:通过SqlDataAdapter填充DataTable,绑定到控件展示数据:

    Sub LoadData()
        Using conn As New SqlConnection(connString)
            Try
                conn.Open()
                CabinetAdapter = New SqlDataAdapter("SELECT * FROM 你的表名", conn)
                CabinetTable = New DataTable()
                CabinetAdapter.Fill(CabinetTable)
                ' 绑定到DataGridView展示
                DataGridView1.DataSource = CabinetTable
                CabinetManager = CType(Me.BindingContext(CabinetTable), CurrencyManager)
            Catch ex As Exception
                MessageBox.Show("加载数据出错:" & ex.Message)
            End Try
        End Using ' 自动释放连接资源
    End Sub
    
  • 实现新增功能:用参数化INSERT语句,避免SQL注入风险:

    Sub AddRecord(字段1 As String, 字段2 As Integer) ' 根据你的表结构调整参数
        Using conn As New SqlConnection(connString)
            Try
                conn.Open()
                Dim insertCmd As New SqlCommand("INSERT INTO 你的表名(字段1, 字段2) VALUES(@Val1, @Val2)", conn)
                insertCmd.Parameters.AddWithValue("@Val1", 字段1)
                insertCmd.Parameters.AddWithValue("@Val2", 字段2)
                insertCmd.ExecuteNonQuery()
                MessageBox.Show("新增成功!")
                LoadData() ' 新增后刷新数据
            Catch ex As Exception
                MessageBox.Show("新增出错:" & ex.Message)
            End Try
        End Using
    End Sub
    
  • 实现修改功能:结合当前选中记录,执行参数化UPDATE:

    Sub UpdateRecord(记录ID As Integer, 新字段值 As String)
        Using conn As New SqlConnection(connString)
            Try
                conn.Open()
                Dim updateCmd As New SqlCommand("UPDATE 你的表名 SET 字段1 = @NewVal WHERE ID = @RecordID", conn)
                updateCmd.Parameters.AddWithValue("@NewVal", 新字段值)
                updateCmd.Parameters.AddWithValue("@RecordID", 记录ID)
                updateCmd.ExecuteNonQuery()
                MessageBox.Show("修改成功!")
                LoadData() ' 修改后刷新数据
            Catch ex As Exception
                MessageBox.Show("修改出错:" & ex.Message)
            End Try
        End Using
    End Sub
    
  • 实现删除功能:通过参数化DELETE语句删除指定记录:

    Sub DeleteRecord(记录ID As Integer)
        If MessageBox.Show("确定要删除这条记录吗?", "确认删除", MessageBoxButtons.YesNo) = DialogResult.Yes Then
            Using conn As New SqlConnection(connString)
                Try
                    conn.Open()
                    Dim deleteCmd As New SqlCommand("DELETE FROM 你的表名 WHERE ID = @RecordID", conn)
                    deleteCmd.Parameters.AddWithValue("@RecordID", 记录ID)
                    deleteCmd.ExecuteNonQuery()
                    MessageBox.Show("删除成功!")
                    LoadData() ' 删除后刷新数据
                Catch ex As Exception
                    MessageBox.Show("删除出错:" & ex.Message)
                End Try
            End Using
        End If
    End Sub
    
  • 核心注意事项:

    • 一定要用参数化查询,这是防止SQL注入的关键,绝对不能直接拼接SQL语句
    • 优先使用Using语句管理数据库连接,它会自动释放资源,避免连接泄漏
    • 用Try-Catch捕获异常,给用户友好的错误提示,也方便自己调试

如果你后续把未完成的代码补充完整,或者遇到具体的报错、功能卡点,都可以再细化问题哦!

内容的提问来源于stack exchange,提问作者Rifqi Dwi Prabowo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 07:59:46