 |
|
Syntax Error ทั้งๆที่คิดว่าเขียนถูก(มั้ง) ช่วยหน่อยครับ เพิ่มข้อมูลไม่ได้ครับ ลองแก้ด้วยตัวเองพักใหญ่แล้วไม่ไหวครับ |
|
 |
|
|
 |
 |
|
สวัสดีครับพี่ๆผมมีปัญหาในการเพิ่มข้อมูลจาก VB ลงใน acess(.mdb) ครับ มันฟ้อง error ตอนกดเพิ่มข้อมูลครับ ผมเข้าใจว่าคำสั่ง sql ผิด
Code (VB.NET)
.ส่วนด้านล่างเป็น code เพิ่มข้อมูลครับ
Private Sub InsertData()
Me.BikeTableAdapter.Fill(Me.ChanonDBDataSet.bike)
Dim sql As String
sql = "INSERT INTO bike (bike_id, band, model, cc, series, color, number, price)
VALUES (@bike_id, @band, @model, @cc, @series, @color, @number, @price)"
CheckDB()
Dim cmdadd As New OleDbCommand(sql, connection)
With cmdadd
.Parameters.AddWithValue("@bike_id", TextID.Text)
.Parameters.AddWithValue("@band", Comboband.Text)
.Parameters.AddWithValue("@model", ComboModel.Text)
.Parameters.AddWithValue("@cc", Textcc.Text)
.Parameters.AddWithValue("@series", TextSeries.Text)
.Parameters.AddWithValue("@color", TextColor.Text)
.Parameters.AddWithValue("@number", TextNumber.Text)
.Parameters.AddWithValue("@price", TextPrice.Text)
Dim r As Integer = .ExecuteNonQuery()
If r = -1 Then
MessageBox.Show("เกิดข้อผิดพลาด ไม่สามารถเพิ่มข้อมูลได้")
Else
MessageBox.Show("บันทึกข้อมูลแล้ว")
BindingData()
End If
End With
End Sub
Tag : .NET, VS 2012 (.NET 4.x)
|
|
 |
 |
 |
 |
Date :
2015-11-11 04:18:27 |
By :
acidzero |
View :
832 |
Reply :
5 |
|
 |
 |
 |
 |
|
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
เป็นเพราะมี Reserved Words หรือปล่าวครับ
เห็นมีคำว่า number
https://support.microsoft.com/en-us/kb/286335
|
 |
 |
 |
 |
Date :
2015-11-11 08:29:35 |
By :
fonfire |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ทำไมในรูปตรง @price);" มีเครื่องหมาย ;
|
 |
 |
 |
 |
Date :
2015-11-11 11:57:59 |
By :
mee079 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ขอบคุณพี่ๆมากครับ ตอนนี้ เอา ; ออกไปแล้วแจ้ง error เหมือนเดิมครับ ส่วน reserved word คืออะไร แก้ไขอย่างไรครับ ผมมือใหม่ ไม่ตั้งใจเรียนตอนครูสอน อิอิ ขอรบกวนจริงๆครับ
|
 |
 |
 |
 |
Date :
2015-11-11 13:53:50 |
By :
acidzero |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ไม่หายที่ครับ เปลี่ยน reversed word แล้ว แจ้ง syntax error เหมือนเดิม T^T
ช่วยดูหน่อยครับ อันนี้โค้ด เพิ่มข้อมูล
Code (VB.NET)
Private Sub InsertData()
Dim sql As String
sql = "INSERT INTO bike (bike_id, band, model, cc, series, color, b_number, price)
VALUES (@bike_id, @band, @model, @cc, @series, @color, @b_number, @price)"
CheckDB()
Dim cmdadd As New OleDbCommand(sql, connection)
With cmdadd
.Parameters.AddWithValue("@bike_id", TextID.Text)
.Parameters.AddWithValue("@band", Comboband.Text)
.Parameters.AddWithValue("@model", ComboModel.Text)
.Parameters.AddWithValue("@cc", Textcc.Text)
.Parameters.AddWithValue("@series", TextSeries.Text)
.Parameters.AddWithValue("@color", TextColor.Text)
.Parameters.AddWithValue("@b_number", TextNumber.Text)
.Parameters.AddWithValue("@price", TextPrice.Text)
Dim r As Integer = .ExecuteNonQuery()
If r = -1 Then
MessageBox.Show("เกิดข้อผิดพลาด ไม่สามารถเพิ่มข้อมูลได้")
Else
MessageBox.Show("บันทึกข้อมูลแล้ว")
BindingData()
End If
End With
End Sub
ส่วนนี้โค้ด Module ผมไม่แน่ใจเรื่องการ อ้าง path file ของ oledb ด้วย
(ไว้ไฟล์ mdb ในไฟล์ project ครับ)
Code (VB.NET)
Imports System.Data
Imports System.Data.OleDb
Module Module1
Public conStr As String = "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Users\Admins\Documents\Visual Studio 2015\Projects\ChanonBike\ChanonBike\ChanonDB.mdb;" & "Persist Security Info=True;"
Public connection As New OleDbConnection(conStr)
Public command As OleDbCommand
Public dataSt As DataSet
Public adapter As OleDb.OleDbDataAdapter
Public bindingSrc As BindingSource
Public sql As String
Sub CheckDB()
With connection
If .State = ConnectionState.Open Then .Close()
.Open()
End With
End Sub
End Module
ขอบคุณมากๆครับ ><
|
 |
 |
 |
 |
Date :
2015-11-13 01:30:37 |
By :
acidzero |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
|
|