เกิด Syntax error in INSERT INTO statement. ทั้งๆที่โค้ดทุกอย่างคิดว่าถูกต้อง
System.Data.OleDb.OleDbException: Syntax error in INSERT INTO statement.
โค้ด
Line 17: Dim mycommand As New OleDbCommand(strsql, myconn)
Line 18: myconn.Open()
Line 19: mycommand.ExecuteNonQuery()
Line 20: myconn.Close()
ถ้า response.write strsql ออกมาเนี่ย จะได้เป็น
insert into abnormal_receive
(abnormal_no,family,lot_no,package_id,wafer_no,mc,process_id,op,ok,ng,ng_char,ng_open,ng_other,ng_code,ng_name,finding_date,receive_date,promise_date,case,status,type)
values
('5','family','lot','package','wafer','machine','720','100','90','10','5','3','2','752','no wire','06/17/2549','06/18/2549','05/29/2549','test case','False','1')
คำสั่ง SQL คือ
Dim myconn As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; data source=" & Server.MapPath("abnormal_database.mdb"))
Dim strsql As String = "insert into abnormal_receive (abnormal_no,family,lot_no,package_id,wafer_no,mc,process_id,op,ok,ng,ng_char,ng_open,ng_other,ng_code,ng_name,finding_date,receive_date,promise_date,case,status,type) values ('" & ab_no.Text & "','" & family_name.Text & "','" & lotno.Text & "','" & package.Text & "','" & wafer.Text & "','" & mc.Text & "','" & process.SelectedItem.Value & "','" & op.Text & "','" & ok.Text & "','" & ng.Text & "','" & ng_char.Text & "','" & ng_open.Text & "','" & ng_other.Text & "','" & ng_code.Text & "','" & ng_name.Text & "','" & finddate.Text & "','" & receivedate.Text & "','" & promisedate.Text & "','" & case_ng.Text & "','" & False & "','" & 1 & "')"
Dim mycommand As New OleDbCommand(strsql, myconn)
myconn.Open()
mycommand.ExecuteNonQuery()
myconn.Close()
หากลองเอาคำสั่งนี้ ไป run ใน access ข้อมูลกลับลงฐานข้อมูลได้ไม่มีปัญหาครับ
... ตอนนี้เป็นปัญหา เส้นผมบังภูเขา แต่พอดีผมยังมองไม่เห็นภูเขานั้นสักทีครับ
ใครเคยเป็นช่วยด้วยครับ
ขอบคุณครับTag : - - - -
Date :
30 มิ.ย. 2549 15:04:51
By :
gototon
View :
8325
Reply :
4
เอ๊..ผมไม่แน่ใจว่าตัวแปรที่เป็นสตริงใน asp จะเก็บตัวอักขรได้ยาวขนาดไหนคุณลองเปลี่ยนเป็นแบบนี้ดูไหม?
ถ้าเป็นการแทรกข้อมูลไปในทุก ๆ ฟิวล์ ลองใช้แบบนี้ดูครับ
Dim strsql As String = "insert into abnormal_receive values ('" & ab_no.Text & "','" & family_name.Text & "','" & lotno.Text & "','" & package.Text & "','" & wafer.Text & "','" & mc.Text & "','" & process.SelectedItem.Value & "','" & op.Text & "','" & ok.Text & "','" & ng.Text & "','" & ng_char.Text & "','" & ng_open.Text & "','" & ng_other.Text & "','" & ng_code.Text & "','" & ng_name.Text & "','" & finddate.Text & "','" & receivedate.Text & "','" & promisedate.Text & "','" & case_ng.Text & "','" & False & "','" & 1 & "')"
Date :
1 ก.ค. 2549 16:30:23
By :
นายกระจอก
ตัวแปร String มีความยาวได้ 2 พันล้านตัวอักษรครับ (เยอะแหะ)
ลอง write strsql ออกมาดูสิครับ ว่าถูกต้องรึเปล่า
Date :
4 ก.ค. 2549 07:00:56
By :
v
คำว่า case ที่เป็นชื่อ ฟิว ง่ะครับ เป็น keyword หรือเปล่า ผมไม่แน่ใจนะ
ถ้าเป็นkeyword มานก้อerror ได้นะงับผม
Date :
11 ต.ค. 2549 01:56:07
By :
อิอิจัง
เกิด Syntax error in INSERT INTO statement.
Dim sql As String = ""
sql = "INSERT INTO Employees (EmployeeID, EmployeeName,Employeelastname,address,tel"
sql &= "VALUES(@EmpID,@nm,@la,@add,@te)"
_cmd = New OleDbCommand(sql, _conn)
_cmd.Parameters.AddWithValue("EmpID", TextBox1.Text)
_cmd.Parameters.AddWithValue("nm", TextBox2.Text)
_cmd.Parameters.AddWithValue("la", TextBox3.Text)
_cmd.Parameters.AddWithValue("add", TextBox4.Text)
_cmd.Parameters.AddWithValue("te", TextBox5.Text)
Dim affedtRow As Integer = _cmd.ExecuteNonQuery() เกิด Syntax error in INSERT INTO statement.
If (affedtRow < 1) Then
ToolStripStatusLabel1.Text = "เกิดข้อผิดพลาดในการบันทึกข้อมูล"
Return
Else
ToolStripStatusLabel1.Text = "ข้อมูลได้รับการบันทึกแล้ว"
ShowEmployees()
End If
Date :
2011-09-24 00:02:53
By :
ืnana
Load balance : Server 02