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 > สอบถามการแก้ไขข้อมูลใน Database Access VB.Net โดยใช้คำสั่ง UPDATE



 

สอบถามการแก้ไขข้อมูลใน Database Access VB.Net โดยใช้คำสั่ง UPDATE

 



Topic : 126137



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



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




Code (VB.NET)
Private Sub ButtonUpdate_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonUpdate.Click
        If TextID.Text = "" Or IsDataComplete() = False Then
            Exit Sub
        End If



        Dim s As String
        If Not (PictureBox1.Image Is Nothing) Then
            s = " ,Picture = @pic"
        Else
            s = " "
        End If

        sql = "UPDATE Categories SET " & _
        "CategoryName = @name, Description = @descr" & s & _
        "WHERE CategoryID = @id"

        cmd.Parameters.Clear()
        cmd.CommandText = sql
        cmd.Parameters.AddWithValue("name", TextName.Text)
        cmd.Parameters.AddWithValue("descr", TextDescr.Text)
        cmd.Parameters.AddWithValue("id", TextID.Text)


        If Not (PictureBox1.Image Is Nothing) Then
            Dim byteArr() As Byte = ReadImage()
            cmd.Parameters.AddWithValue("pic", byteArr)
        End If

        If cmd.ExecuteNonQuery() = 1 Then
            MessageBox.Show("บันทึกการเปลี่ยนแปลงแล้ว")
            UpdateBinding()
        Else
            MessageBox.Show("เกิดข้อผิดพลาด")
        End If
    End Sub

pj



Tag : .NET, Ms Access, VB.NET









ประวัติการแก้ไข
2017-01-23 18:58:06
2017-01-23 20:17:39
Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2017-01-23 18:49:53 By : dknutza0 View : 2491 Reply : 7
 

 

No. 1



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



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


ตอนนี้แก้เป็นแบบนี้แล้วครับแต่ก็ยังผิด
Code (VB.NET)
Imports System.Data
Imports System.Data.OleDb
Public Class Form1
    Private conn As OleDbConnection
    Private cmd As OleDbCommand
    Private data As DataSet
    Private adapter As OleDbDataAdapter
    Private bindingScr As BindingSource
    Private sql As String
    Private Sub UpdateBinding()
        TextID.DataBindings.Clear()
        TextName.DataBindings.Clear()
        TextDescr.DataBindings.Clear()
        PictureBox1.DataBindings.Clear()

        sql = "SELECT * FROM Categories"
        cmd = New OleDbCommand(sql, conn)
        adapter = New OleDbDataAdapter(cmd)
        data = New DataSet()
        adapter.Fill(data, "category")

        bindingScr = New BindingSource()
        bindingScr.DataSource = data.Tables("category")

        TextID.DataBindings.Add("Text", bindingScr, "CategoryID")
        TextName.DataBindings.Add("Text", bindingScr, "CategoryName")
        TextDescr.DataBindings.Add("Text", bindingScr, "Description")
        PictureBox1.DataBindings.Add("Image", bindingScr, "Picture", True)


        ListBox1.DataSource = data.Tables("category")
        ListBox1.DisplayMember = "CategoryName"
    End Sub
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim conStr As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Users\dknutza\Downloads\New\adddata-3-2ณัฐวัฒน์\Northwind.MDB"
        conn = New OleDbConnection(conStr)
        conn.Open()

        ButtonSave.Enabled = False

        UpdateBinding()

    End Sub
    Private Sub Form1_FormClosing(ByVal sender As System.Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
        conn.Close()
    End Sub
    Private Sub ListBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListBox1.SelectedIndexChanged
        bindingScr.Position = ListBox1.SelectedIndex
        ToolStripStatusLabel1.Text = "แถวที่:" & (bindingScr.Position + 1) & "/" & bindingScr.Count
    End Sub

    Private Sub LinkLabel1_LinkClicked(ByVal sender As System.Object, ByVal e As System.Windows.Forms.LinkLabelLinkClickedEventArgs) Handles LinkLabel1.LinkClicked
        OpenFileDialog1.Filter = "Image File(*.jpg,*.png,*.gif,*.bmp)|*.jpg;*.png;*.gif;*.bmp"
        If OpenFileDialog1.ShowDialog() = Windows.Forms.DialogResult.OK Then
            PictureBox1.Image = Bitmap.FromFile(OpenFileDialog1.FileName)
        End If

    End Sub
 
    Private Function ReadImage() As Byte()
        Dim memStream As New IO.MemoryStream()

        PictureBox1.Image.Save(memStream, Drawing.Imaging.ImageFormat.Bmp)
        Return memStream.ToArray()
    End Function
    Private Function IsDataComplete()
        TextName.Text.Trim(TextDescr.Text.Trim())

        If TextName.Text = "" OrElse TextDescr.Text = "" Then
            MessageBox.Show("กรุณาใส่ข้อมูลให้ครบ")
            Return False
        Else
            Return True
        End If
    End Function


    Private Sub OpenFileDialog1_FileOk(ByVal sender As System.Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles OpenFileDialog1.FileOk

    End Sub

   
    Private Sub ButtonSave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonSave.Click
        If IsDataComplete() = False Then
            Exit Sub
        End If

        sql = "INSERT INTO Categories"
        If Not (PictureBox1.Image Is Nothing) Then
            sql &= "(CategoryName,Description,Picture)"
            sql &= "VALUES(@name,@descr,@pic)"
        Else
            sql &= "(CategoryName,Description)"
            sql &= "VALUES(@name,@descr)"
        End If

        cmd.Parameters.Clear()
        cmd.CommandText = sql
        cmd.Parameters.AddWithValue("name", TextName.Text)
        cmd.Parameters.AddWithValue("descr", TextDescr.Text)

        If Not (PictureBox1.Image Is Nothing) Then
            Dim pic() As Byte = ReadImage()
            cmd.Parameters.AddWithValue("pic", pic)
        End If


        Dim result As Integer = cmd.ExecuteNonQuery()
        If result = -1 Then
            MessageBox.Show("เกิดข้อผิดพลาด ไม่สามารถเพิ่มข้อมูลได้")
        Else
            MessageBox.Show("บันทึกข้อมูลแล้ว")
            ButtonAdd.PerformClick()
        End If

    End Sub

    Private Sub ButtonAdd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonAdd.Click
        TextID.Text = ""
        TextName.Text = ""
        TextDescr.Text = ""
        PictureBox1.Image = Nothing

        If ButtonAdd.Text = "เพิ่มข้อมูล" Then
            ButtonAdd.Text = "ยกเลิก"
            ButtonSave.Enabled = True
            ListBox1.Enabled = False
        ElseIf ButtonAdd.Text = "ยกเลิก" Then
            ButtonAdd.Text = "เพิ่มข้อมูล"
            ButtonSave.Enabled = False
            ListBox1.Enabled = True

            UpdateBinding()
        End If

    End Sub

    Private Sub ButtonDelete_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonDelete.Click
        If TextID.Text = "" Then
            Exit Sub
        End If

        Dim result As DialogResult = MessageBox.Show("ต้องการลบข้อมูลแถวนี้จริงหรอไม่", "ยืนยันการลบ", MessageBoxButtons.OKCancel)
        If result = DialogResult.Cancel Then

            Exit Sub
        End If


        sql = "DELETE FROM Categories WHERE CategoryID =" & TextID.Text
        cmd.Parameters.Clear()
        cmd.CommandText = sql
        cmd.ExecuteNonQuery()
        UpdateBinding()

    End Sub

    Private Sub ButtonUpdate_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonUpdate.Click
        If TextID.Text = "" Or IsDataComplete() = False Then
            Exit Sub
        End If



        Dim s As String
        If Not (PictureBox1.Image Is Nothing) Then
            s = " ,Picture = @pic"
        Else
            s = " "
        End If

        sql = "UPDATE Categories SET CategoryName = @name, Description = @descr, Picture = @pic WHERE CategoryID = @id"

        cmd.Parameters.Clear()
        cmd.CommandText = sql
        cmd.Parameters.AddWithValue("name", TextName.Text)
        cmd.Parameters.AddWithValue("descr", TextDescr.Text)
        cmd.Parameters.AddWithValue("id", TextID.Text)


        If Not (PictureBox1.Image Is Nothing) Then
            Dim byteArr() As Byte = ReadImage()
            cmd.Parameters.AddWithValue("pic", byteArr)
        End If

        If cmd.ExecuteNonQuery() = 1 Then
            MessageBox.Show("บันทึกการเปลี่ยนแปลงแล้ว")
            UpdateBinding()
        Else
            MessageBox.Show("เกิดข้อผิดพลาด")
        End If
    End Sub

End Class



แก้ไขได้หมดยกเว้นรูปภาพ ถ้าใส่Picture = @pic เข้าไปมันจะEror
ss








ประวัติการแก้ไข
2017-01-23 20:18:55
2017-01-23 20:21:35
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-01-23 20:16:56 By : dknutza0
 


 

No. 2



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



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

คิดว่า name เป็นคำสงวนนะครับ
ลองใส่ name1 ดูครับ ไม่รู็เหมือนกันนะครับลองดู
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-01-23 21:04:02 By : zarooman
 

 

No. 3



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



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


ตอบความคิดเห็นที่ : 2 เขียนโดย : zarooman เมื่อวันที่ 2017-01-23 21:04:02
รายละเอียดของการตอบ ::
ผมเปลี่ยนได้หมดยกเว้นรูปอะครับ ถ้าลบPicture = @pic ในบรรทัดที่ 172 ออกไป แต่พอใส่Picture = @pic แล้วจะerorตามภาพเลยครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-01-23 21:18:54 By : dknutza0
 


 

No. 4



โพสกระทู้ ( 4,440 )
บทความ ( 23 )



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

ทำไม

WHERE CategoryID = @id

ถึง มี

cmd.Parameters.AddWithValue("id", TextID.Text)

อีกละครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-01-24 08:51:41 By : lamaka.tor
 


 

No. 5



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



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


167 เปลี่ยน เป็น sql = "UPDATE Categories SET CategoryName = @name, Description = @descr, Picture = @pic WHERE CategoryID = @id"

169 เปลี่ยนเป็น sql = "UPDATE Categories SET CategoryName = @name, Description = @descr, WHERE CategoryID = @id"

ลองดูนะ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-01-24 11:14:56 By : godedp
 


 

No. 6



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



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


ถ้าดูตาม error เหมือนไม่ได้ส่งค่าให้ parameter

ลอง debug ดูว่ามันส่งค่า pic หรือปล่าว

Code
If Not (PictureBox1.Image Is Nothing) Then Dim pic() As Byte = ReadImage() cmd.Parameters.AddWithValue("pic", pic) End If

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-01-24 13:31:27 By : fonfire
 


 

No. 7

Guest


ดูใน DataBase ด้วยครับ ว่าคุณมี Field นี้จริงรึเปล่า เพราะที่มันฟ้อง มันก็บอกว่า ไม่มีนะครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-01-25 10:39:11 By : Yut
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : สอบถามการแก้ไขข้อมูลใน Database Access VB.Net โดยใช้คำสั่ง UPDATE
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ 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 05
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 อัตราราคา คลิกที่นี่