如何在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
相关产品推荐
相关产品推荐

