Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,037

HOME > .NET Framework > Forum > อยากรู้ข้อผิดพลาดจากโค้ด_cmd.ExecuteNonQuery() อ่ะค่ะ มันบอกว่า Syntax error in UPDATE statement. พี่ๆช่วยดูให้หน่อยนะคะ



 

อยากรู้ข้อผิดพลาดจากโค้ด_cmd.ExecuteNonQuery() อ่ะค่ะ มันบอกว่า Syntax error in UPDATE statement. พี่ๆช่วยดูให้หน่อยนะคะ

 



Topic : 054943

Guest




ช่วยบอกข้อผิดพลาดทีนะคะ มันเป็นโครงการจบการศึกษาของหนูอ่ะ /ขอบคุณค่ะ
โค้ดค่ะ

Code (VB.NET)
Imports System.Data
Imports System.Data.OleDb
Imports System.Data.SqlClient

Module module1
    Friend _constr As String = _
     "provider=microsoft.ace.oledb.12.0;" & _
     "data source=" & Application.StartupPath & "\mydatabase.accdb"
   
End Module

Public Class Form1

    Private _dataset As DataSet

    Private _conn As OleDbConnection

    Private _cmd As OleDbCommand

    Private _rowcount As Integer = 0
    Private _position As Integer = 0

    Private Sub From1_load() Handles Me.Load

        _conn = New OleDbConnection(_constr)
        _conn.Open()
        readdata()
        filllistbox()
        bindings()
    End Sub
    
    Private Sub Form1_Formclosed() Handles Me.FormClosed
        _conn.Close()

    End Sub
    '_ _อ่านข้อมูลมาเก็บไว้ใน Dataset
    Private Sub readdata()
        Dim sql As String = "select*from student"
        _cmd = New OleDbCommand(sql, _conn)
        Dim adapter As New OleDbDataAdapter(_cmd)
        _dataset = New DataSet()
        adapter.Fill(_dataset, "stud")
        _rowcount = _dataset.Tables("stud").Rows.Count


      

    End Sub
    '_ _เพื่มรายขื่อนักศึกษาลงใน listbox
    Private Sub filllistbox()
        Dim flname As String = "" 'ประกาศชื่อและนามสกุล firstname และlastname
        ListBox1.Items.Clear()
        For i = 0 To _dataset.Tables("stud").Rows.Count - 1
            flname = _dataset.Tables("stud").Rows(i)("firstname")
            ListBox1.Items.Add(flname)
        Next
        '_ _ ให้รายการลำดับแรกในlistbox ถูกเลือก
        '_ _ ซึ่งจะเกิดอีเวนต์ selectedindexchanged ตามมา
        If (ListBox1.Items.Count > 0) Then
            ListBox1.SelectedIndex = 0

        End If
    End Sub
    '_ _ทำการbinding ข้อมูลกับ Textbox
    Private Sub bindings()
        txtnoun.DataBindings.Add("text", _dataset, "stud.noun")
        txtstudentID.DataBindings.Add("text", _dataset, "stud.studentID")
        txtfirstname.DataBindings.Add("text", _dataset, "stud.firstname")
        txtlastname.DataBindings.Add("text", _dataset, "stud.lastname")
        txtnickname.DataBindings.Add("text", _dataset, "stud.nickname")
        txtsex.DataBindings.Add("text", _dataset, "stud.sex")

        'txtclass.DataBindings.Add("text", _dataset, "stud.class")
        ' txtgroup.DataBindings.Add("text", _dataset, "grp.group")


    End Sub
    Private Sub listbox1_selectedindexchanged() Handles ListBox1.SelectedIndexChanged
        Dim index As Integer = ListBox1.SelectedIndex
        Me.BindingContext(_dataset, "stud").Position = index
        _position = index
        updatestatus()


    End Sub



    Private Sub updatestatus()
        ToolStripStatusLabel1.Text = (_position + 1) & " of " & _rowcount

       

    End Sub
    Private Sub tabcontrol1_selectedindexchanged() Handles TabControl1.SelectedIndexChanged
        '_ _ ถ้าคลิกแท็บเพิ่มข้อมูล
        If (TabControl1.SelectedIndex = 1) Then
            '_ _ยกเลิกการ Binding เดิมเพื่อรอรับการใส่ข้อมูลใหม่
            clearbindings()
            btndelete.Enabled = False
            ListBox1.Enabled = False
            '_ _ถ้าคลิกแท็บแสดง แก้ไขข้อมูล

        ElseIf (TabControl1.SelectedIndex = 0) Then
            '_ _อ่านข้อมูลใหม่()
            readdata()
            If (_rowcount = 0) Then '_ _ถ้าไม่มีข้อมูล
                Return

            End If
            '_ _ ทำการbinding ข้อมูลใหม่
            bindings()
            btndelete.Enabled = True
            ListBox1.Enabled = True
            ListBox1.SetSelected(0, True)

        End If

    End Sub
    '_ _ถ้าจะทำการ Binding ใหม่ต้องยกเลิกการBinding เดิม
    Private Sub clearbindings()
        For Each c As Object In GroupBox1.Controls
            If (TypeOf c Is TextBox) Then
                c.text = ""
                c.databindings.clear()

            End If
        Next
    End Sub
    Private Sub btnsave_click() Handles btnsave.Click
        If (txtnoun.Text = "" Or txtfirstname.Text = "" Or txtlastname.Text = "" Or txtnickname.Text = "" Or txtsex.Text = "") Then
            MsgBox("กรุณาใส่ข้อมูลให้ครบ")
            Return

        End If
        Dim sql As String = ""
        If (txtstudentID.Text = "") Then
            sql = "insert into student(noun,firstname,"
            sql &= "lastname,nickname,sex)values(@noun,@nm,@lnm,@nn,@sex)"
        Else
            sql = "update student set"
            sql &= "noun=@noun,firstname=@nm"
            sql &= "lastname=@lnm,nickname=@nn,sex=@sex"
            sql &= "where studentID=" & txtstudentID.Text

        End If

        _cmd = New OleDbCommand(sql, _conn)
        _cmd.Parameters.AddWithValue("noun", txtnoun.Text)
        _cmd.Parameters.AddWithValue("nm", txtfirstname.Text)
        _cmd.Parameters.AddWithValue("lnm", txtlastname.Text)
        _cmd.Parameters.AddWithValue("nn", txtnickname.Text)
        _cmd.Parameters.AddWithValue("sex", txtsex.Text)
       


        Dim affectedrow As Integer = _cmd.ExecuteNonQuery()----------------------------------------------------------errorตรงนี้ค่ะ
        If (affectedrow < 1) Then
            ToolStripStatusLabel1.Text = "เกิดข้อผิดพลาดในบันทึกข้อมูล!"
        Else
            ToolStripStatusLabel1.Text = "ข้อมูลถูกจัดเก็บแล้ว"
            Dim name As String = txtfirstname.Text
            '_ _อ่านข้อมูลเข้ามาใหม่
            readdata()
            filllistbox()
            clearbindings()
            '_ _ถ้าอยู่ที่แท็บ แสดงแก้ใขข้อมูล ให้ Binding ใหม่
            If (TabControl1.SelectedIndex = 0) Then
                bindings()

            End If
            '_ _ให้ทำไฮไลท์listbox รายการที่เราเพิ่มหรือแก้ไขใหม่
            Dim idx As Integer = ListBox1.FindStringExact(name)
            If (idx > -1) Then
                ListBox1.SetSelected(idx, True)

            End If
            updatestatus()

        End If
    End Sub
    Private Sub btndelete_click() Handles btndelete.Click
        If (txtstudentID.Text = "") Then
            Return

        End If

        If (MsgBox("ลบข้อมูลแถวนี้ ?", MsgBoxStyle.OkCancel) = MsgBoxResult.Cancel) Then
            Return

        End If
        Dim sql As String
        sql = "delete*from class"
        sql &= "where firstname=@std"
        _cmd = New OleDbCommand(sql, _conn)
        Dim r As Integer = _cmd.ExecuteNonQuery()------------------------------------------------------------------ตรงนี้ด้วยค่ะ
        If (r > 0) Then
            ToolStripStatusLabel1.Text = "ข้อมูลถูกลบแล้ว"

        End If
        Dim idx0 As Integer = ListBox1.SelectedIndex
        clearbindings()
        readdata()
        filllistbox()
        bindings()
        If (idx0 > 0) Then
            ListBox1.SetSelected(idx0 - 1, True)

        End If
        '--ลบข้อมูลของนักศึกษาออกจากตาราง class ด้วย
        sql = "delete *from class where firstname=@std"
        _cmd = New OleDbCommand(sql, _conn)
        _cmd.Parameters.AddWithValue("std", txtfirstname.Text)
        _cmd.ExecuteNonQuery()
    End Sub

End Class




Tag : .NET, Ms Access, VB.NET, VS 2008 (.NET 3.x)







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2011-01-23 18:36:51 By : น.ศ.ปวช. View : 1599 Reply : 10
 

 

No. 1



โพสกระทู้ ( 249 )
บทความ ( 0 )



สถานะออฟไลน์
Facebook

_cmd = New OleDbCommand(sql, _conn)
_cmd.Parameters.clear()
_cmd.Parameters.AddWithValue("@noun", txtnoun.Text)
_cmd.Parameters.AddWithValue("@nm", txtfirstname.Text)
_cmd.Parameters.AddWithValue("@lnm", txtlastname.Text)
_cmd.Parameters.AddWithValue("@nn", txtnickname.Text)
_cmd.Parameters.AddWithValue("@sex", txtsex.Text)







แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-01-23 18:56:14 By : tee
 


 

No. 2

Guest


ตอบความคิดเห็นที่ : 1 เขียนโดย : tee เมื่อวันที่ 2011-01-23 18:56:14
รายละเอียดของการตอบ ::
แก้ตามที่พี่บอกแล้วค่ะ รันได้แต่ก้อ error เหมือนเดิมเป๊ะเลยค่ะ มันเป็นเพราะอะไรคะ? งง

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-01-23 19:09:00 By : น.ศ.ปวช.
 

 

No. 3



โพสกระทู้ ( 39 )
บทความ ( 0 )



สถานะออฟไลน์


Code (VB.NET)
sql = "update student set"
sql &= "noun=@noun,firstname=@nm"
sql &= "lastname=@lnm,nickname=@nn,sex=@sex"
sql &= "where studentID=" & txtstudentID.Text
'ต้อง sql &= "where studentID='" & txtstudentID.Text & "' หรือป่าว มือใหม่เหมือนกันคับ


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-01-23 19:32:03 By : aneklove
 


 

No. 4

Guest


ตอบความคิดเห็นที่ : 3 เขียนโดย : aneklove เมื่อวันที่ 2011-01-23 19:32:03
รายละเอียดของการตอบ ::
ลองทำดูแล้วแต่มันไม่ได้อ่ะค่ะ เครื่องหมายมันผิด/ขอบคุณมากค่ะ ทำงัยดี โปรเจ็คจบซะด้วยT T

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-01-23 19:44:28 By : น.ศ.ปวช.
 


 

No. 5



โพสกระทู้ ( 39 )
บทความ ( 0 )



สถานะออฟไลน์


ผิดๆ ต้องCode (VB.NET)
sql &= "where studentID="'" & txtstudentID.Text & "'"

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-01-24 00:38:56 By : aneklove
 


 

No. 6



โพสกระทู้ ( 3 )
บทความ ( 0 )



สถานะออฟไลน์


อ่า สงสัยอาจจะเพราะว่าพอเอาเข้าจริง SQL String มันออกมาแบบไม่เว้นวรรครึเปล่าคะ
เพราะถ้าลอง write ตรง sql update จะออกมาเป็น
"update student setnoun=@noun,firstname=@nmlastname=@lnm,nickname=@nn,sex=@sexwhere studentID=" & txtstudentID.Text

ตรง delete ก็น่าจะปัญหาเดียวกัน ?

ถ้าให้สงสัยก็คือ ตรงบรรทัดที่เป็น sql &= "str"
ลองใส่ช่องว่างลงไปซักตัวละคะ เป็น sql &= " str"
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-01-24 08:42:34 By : toei
 


 

No. 7



โพสกระทู้ ( 1,348 )
บทความ ( 1 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 6 เขียนโดย : toei เมื่อวันที่ 2011-01-24 08:42:34
รายละเอียดของการตอบ ::
เห็นด้วย น่าจะประมาณนั้นนะ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-01-24 15:18:12 By : หางอึ่ง
 


 

No. 8

Guest


ให้เข้าไปที่ เว็ป www.bookdev.net/vb2008
ครับแล้วโหลด โค้ดมันมาเลยครับแล้วกอบโค้ดมันมาแก้ หนังสือมันเขียนผิด
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-06-22 17:22:49 By : zxczxc
 


 

No. 9



โพสกระทู้ ( 362 )
บทความ ( 0 )



สถานะออฟไลน์


ทำหนังสือมายังทำโค้ดให้ผิด
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-06-23 04:29:29 By : hamzter
 


 

No. 10

Guest


เยี่ยม
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-06-24 10:46:33 By : ศุภกร
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : อยากรู้ข้อผิดพลาดจากโค้ด_cmd.ExecuteNonQuery() อ่ะค่ะ มันบอกว่า Syntax error in UPDATE statement. พี่ๆช่วยดูให้หน่อยนะคะ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 02
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่