VB.NET无法连接SQL Server求助(附相关代码)
解决VB.NET连接SQL Server并执行插入的问题
我帮你梳理下代码里的几个关键问题,这些应该就是你连接失败或者插入执行出错的原因:
1. 拼写与语法错误
你的代码里有几处明显的拼写和语法问题:
- 命名空间要区分大小写:
Imports System.Data.SqlClient(不是system.data.sqlclient) sqlcomma d是拼写错误,应该是SqlConnection- 按钮点击事件的定义不完整,需要补充完整的事件签名
- 方法调用要加括号:
MyConnection.Close()(不是Myconnection.close)
2. 未打开连接就执行命令
在执行ExecuteNonQuery()之前,必须先打开数据库连接,否则会直接抛出连接未打开的错误。
3. SQL语句的空格与语法问题
你拼接的SQL语句里,VALUES后面的字符串前后多了不必要的空格,会导致插入的数据带多余空格,甚至可能触发SQL语法错误。
4. 高危风险:SQL注入
直接把文本框的内容拼接到SQL语句里是非常危险的,很容易被SQL注入攻击,必须改用参数化查询来避免这个问题。
修正后的完整代码
Imports System.Data.SqlClient Public Class customer_typer ' 建议后续把连接字符串放到App.config里,方便维护 Private connectionString As String = "Data Source=wisdon;Initial Catalog=stock_management;User ID=sa;Password=managerz" Private Sub CUSTOMER_BT_Click(sender As Object, e As EventArgs) Handles CUSTOMER_BT.Click ' 使用Using语句自动释放连接和命令资源,避免连接泄漏 Using myConnection As New SqlConnection(connectionString) Dim sqlStr As String = "INSERT INTO customer_type(customer_type) VALUES (@CustomerType)" Using myCommand As New SqlCommand(sqlStr, myConnection) ' 添加参数,避免SQL注入,同时处理输入的前后空格 myCommand.Parameters.AddWithValue("@CustomerType", customertyper_txt.Text.Trim()) ' 打开连接并执行插入 myConnection.Open() myCommand.ExecuteNonQuery() End Using End Using ' 可选:插入成功后给用户提示 MsgBox("客户类型添加成功!") End Sub End Class
额外优化建议
- 可以加上异常捕获,方便排查问题:
Try ' 上面的插入代码 Catch ex As Exception MsgBox("操作失败:" & ex.Message) End Try - 把连接字符串迁移到项目的
App.config文件中,后续修改数据库信息不需要改动代码。
内容的提问来源于stack exchange,提问作者user9272061
相关产品推荐
相关产品推荐

