У меня возникли проблемы с получением моего запроса sql для вставки данных в db доступа. Если я запустил запрос в представлении sql в доступе, он вставляет все в порядке, поэтому, я думаю, это оставляет ошибку в моем коде. Я уверен, что сделал фундаментальную ошибку и был бы признателен, если бы кто-нибудь мог указать на это. БлагодаряSql insert query not inserting
Private Sub btnSave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSave.Click
Try
DBConnection.connect()
sql = "SELECT MAX([Request no]) from Requests WHERE Customer = '" & cmbCustomer.Text & "' "
Dim cmd As New OleDb.OleDbCommand
Dim id As String
Dim requestor As String = "BT"
Dim intake As String = "I"
Dim status As String = "O"
'cmd.Parameters.AddWithValue("@p1", cmbCustomer.Text)
cmd.CommandText = sql
cmd.Connection = oledbCnn
dr = cmd.ExecuteReader
While dr.Read()
id = CStr(dr.Item(0))
id = CStr(CDbl(id) + 1)
End While
sql = "INSERT INTO Requests ([Request no], Customer, Dept, Type, [Service level], [Date-time received], [Received by], [Date-time due], Quantity, [Cust requestor], Status) " &
"VALUES ('" & id & "', '" & cmbCustomer.Text.ToUpper & "', '" & cmbDept.Text & "', '" & intake.ToString & "', '" & rbServiceLevel.ToString & "', NOW(), '" & requestor.ToString & "', '" & dtpDateDue.Value & "', '" & txtBoxQuantity.Text & "', '" & requestor.ToString & "', '" & status & "')"
cmd.Dispose()
dr.Close()
oledbCnn.Close()
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
End Sub
БДСВЯЗЬ
Imports System.Data.OleDb
Module DBConnection
Public connetionString As String = My.Settings.storageConnectionString
Public oledbCnn As New OleDbConnection
Public oledbCmd As OleDbCommand
Public dr As OleDbDataReader
Public sql As String
Sub connect()
'connetionString = My.Settings.storageConnectionString
oledbCnn.ConnectionString = connetionString
oledbCnn.Open()
End Sub
End Module
Вы не выполняете свой запрос INSERT, просто строя его –
Как изменить код Yuriy. Спасибо – user1532468
Вам нужно научиться использовать параметры, чтобы избежать инъекции SQL. – LarsTech