Vb.net 数据库应用程序连接错误
我不断收到“未建立连接”错误。虽然我想,如果用Vb.net 数据库应用程序连接错误,vb.net,error-handling,connection,ms-access-2007,Vb.net,Error Handling,Connection,Ms Access 2007,我不断收到“未建立连接”错误。虽然我想,如果用sqlLink.Open和sqlCheck.Connection=sqlLink打开连接,这个错误就不会出现 Imports System.Data.OleDb Public Class StockAdd Dim path = System.Windows.Forms.Application.StartupPath Dim sqlLink As OleDbConnection Private Sub StockAdd_Load
sqlLink.Open
和sqlCheck.Connection=sqlLink
打开连接,这个错误就不会出现
Imports System.Data.OleDb
Public Class StockAdd
Dim path = System.Windows.Forms.Application.StartupPath
Dim sqlLink As OleDbConnection
Private Sub StockAdd_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
sqlLink = New OleDbConnection
sqlLink.ConnectionString = ("Provider=Microsoft.ACE.OLEDB.12.0;Data Source='C:\Users\will\Documents\Computing\ComputingProjectDatabase.accdb';")
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim sqlCheck As New OleDbCommand
Dim oleRdr As OleDbDataReader
sqlLink.Open()
Try
Using sqlOrder As New OleDbCommand
sqlCheck.Connection = sqlLink
sqlCheck.CommandText = "SELECT count(*) FROM StockSystem WHERE [Stock ID] = @stockID"
sqlCheck.Parameters.AddWithValue("@stockID", TextBox5.Text)
oleRdr = sqlCheck.ExecuteReader()
If oleRdr.HasRows = True Then
oleRdr.Read()
If oleRdr.Item(0) = 0 Then
sqlOrder.CommandText = "INSERT INTO StockSystem ([Stock ID], [Stock Price], [Stock Size], [Stock Quantity], [Stock Category]) VALUES ('" & TextBox5.Text & "','" & TextBox7.Text & "','" & TextBox6.Text & "','" & TextBox8.Text & "','" & TextBox9.Text & "')"
sqlOrder.ExecuteNonQuery()
MsgBox("Stock Details Stored.")
Else
MsgBox("Please check you have entered the correct data.")
End If
End If
End Using
Catch ex As Exception
MsgBox(ex.Message)
End Try
sqlLink.Close()
Me.Close()
Stock.Show()
End Sub
End class
如果我的眼睛没有让我失望,那么就不要为sqlOrder命令设置连接。因此,它无法执行sql文本 请注意,您不能使用sqlLink连接,因为它由datareader使用。您需要一个新的连接对象(当然使用相同的连接字符串) 作为旁注,您的代码非常容易受到Sql注入的攻击。如果一个或多个文本框包含一个引号字符,则可能会出现严重问题
始终使用参数化查询作为COUNT()语句之前使用的查询Ohhh,这太愚蠢了><对此表示抱歉..这是漫长的一天