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 > อัพเดทในฐานข้อมูลแล้วมันขึ้นerrorครับ ช่วยด้วยครับ



 

อัพเดทในฐานข้อมูลแล้วมันขึ้นerrorครับ ช่วยด้วยครับ

 



Topic : 055810



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



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




มันขึ้น Object reference not set to an instance of an object.
ที่ dt = DBObject.GetData(SQL) ในบรรทัดที่089ของโค้ดอะครับ รบกวนช่วยชี้ทางให้หน่อยครับ

อันนี้โค้ด
Code (VB.NET)
Imports System.Data
Imports System.Data.OleDb

Imports System.IO
Public Class cusadd
#Region "Declaration"
    Dim SQL As String = ""
#End Region
    Dim Conn As New OleDbConnection

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load




        Me.loaddata()
        Me.SetEnableText(False)
    End Sub


    Private Sub cmdsave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdadd.Click
        If Me.txtidcus.Text.Length = 0 Then
            MessageBox.Show("กรุณาป้อนรหัสบูกค้าก่อน!!", "ผลการตรวจสอบ", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
            txtidcus.Focus()
        End If
        If txtname.Text.Length = 0 Then
            MessageBox.Show("กรุณาป้อนชื่อลูกค้าก่อน!!", "ผลการตรวจสอบ", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
            txtname.Focus()
        End If
        If txtidcard.Text.Length = 0 Then
            MessageBox.Show("กรุณาป้อนรหัสบัตรประชาชนก่อน!!", "ผลการตรวจสอบ", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
            txtidcard.Focus()
        End If
        If txtaddress.Text.Length = 0 Then
            MessageBox.Show("กรุณาป้อนความสูงก่อน!!", "ผลการตรวจสอบ", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
            txtaddress.Focus()
        End If

        If txtage.Text.Length = 0 Then
            MessageBox.Show("กรุณาป้อนอายุก่อน!!", "ผลการตรวจสอบ", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
            txtage.Focus()
        End If
        SQL = "SELECT * FROM cs WHERE id_cus ='" & Me.txtidcus.Text & "'"
        If DBObject.GetDataScalar(SQL) > 0 Then
            SQL = " UPDATE cs SET "
            SQL &= " name = '" & Me.txtname.Text & "'"
            SQL &= ",idcard ='" & Me.txtidcard.Text & "'"
            SQL &= ",address ='" & Me.txtaddress.Text & "'"
            SQL &= ",age ='" & Me.txtage.Text & "'"
            SQL &= ",tel ='" & Me.txttel.Text & "'"
            SQL &= " WHERE id_cus ='" & Me.txtidcus.Text & "'"
        Else
            SQL = "INSERT INTO cs (id_cus,name,idcard,address,age,tel) VALUES "
            SQL &= " ('" & Me.txtidcus.Text & "'"
            SQL &= " ,'" & Me.txtname.Text & "'"
            SQL &= " ,'" & Me.txtidcard.Text & "'"
            SQL &= " ,'" & Me.txtaddress.Text & "'"
            SQL &= " ,'" & Me.txtage.Text & "'"
            SQL &= " ,'" & Me.txttel.Text & "'"
        End If

        If DBObject.ExecuteNonQuery(SQL) > 0 Then
            MessageBox.Show("บ้นทึกเรียบร้อย", "Save")
            Me.loaddata()
        End If
    End Sub
#Region "Function"
    Sub SetClearText()
        Me.txtidcus.Text = ""
        Me.txtname.Text = ""
        Me.txtidcard.Text = ""
        Me.txtaddress.Text = ""
        Me.txtage.Text = ""
        Me.txttel.Text = ""
    End Sub

    Sub SetEnableText(ByVal IsEnable As Boolean)
        Me.txtidcus.Enabled = IsEnable
        Me.txtname.Enabled = IsEnable
        Me.txtidcard.Enabled = IsEnable
        Me.txtaddress.Enabled = IsEnable
        Me.txtage.Enabled = IsEnable
        Me.txttel.Enabled = IsEnable
    End Sub

    Sub LoadData()
        SQL = "SELECT * FROM cs"
        Dim dt As DataSet
        dt = DBObject.GetData(SQL)
        If dt.Tables.Count > 0 Then
            Me.dgvcustomerlist.DataSource = dt.Tables(0)
        End If
    End Sub
#End Region





    Private Sub cmdedit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdedit.Click
        If Me.txtidcus.Text = "" Then
            MessageBox.Show("กรุณาเลือกลูกค้าที่ต้องการแก้ไข", "Edit")
            Exit Sub
        End If

        Me.SetEnableText(True)
        Me.txtidcus.Enabled = False
    End Sub

    Private Sub cmddelete_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmddelete.Click
        If Me.txtidcus.Text = "" Then
            MessageBox.Show("กรุณาเลือกลูกค้าที่ต้องการลบ", "Edit")
            Exit Sub
        End If
        If MessageBox.Show("คุณแน่ใจหรือที่จะลบลูกค้า" & Me.txtidcus.Text, "Delete", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) = Windows.Forms.DialogResult.Yes Then
            SQL = "DELETE FROM cs WHERE id_cus = '" & Me.txtidcus.Text & "'"
            If DBObject.ExecuteNonQuery(SQL) > 0 Then
                MessageBox.Show("ลบข้อมูลเรียบร้อยแล้ว", "Delete")
                Me.LoadData()
                Me.SetClearText()
            End If
        End If
    End Sub
End Class



อันนี้คลาสdb
Code (VB.NET)
Namespace DATA
    Public Class DBtc01
#Region "Declaration"
        Private ConnectionString As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=d:\Tc\TC01.accdb;"
        Private ConnectionDBtc01 As System.Data.OleDb.OleDbConnection
#End Region

#Region "Functions"
        Function Open() As Boolean
            Try
                ConnectionDBtc01 = New System.Data.OleDb.OleDbConnection
                With ConnectionDBtc01
                    .ConnectionString = ConnectionString
                    .Open()
                    Return True
                End With
            Catch ex As Exception
                MessageBox.Show(ex.Message, "Connection")
                Return False
            End Try
        End Function

        Function ExecuteNonQuery(ByVal SQL As String) As Integer
            'insert ,update
            Dim int As Integer
            Try
                Dim CMD As New System.Data.OleDb.OleDbCommand
                CMD.Connection = ConnectionDBtc01
                CMD.CommandType = CommandType.Text
                CMD.CommandText = SQL
                int = CMD.ExecuteNonQuery()
                Return int
            Catch ex As Exception
                MessageBox.Show(ex.Message, "ExecuteNonQuery")
                Return False
            End Try
        End Function

        Function GetData(ByVal SQL As String) As DataSet
            'select data
            Try
                Dim DT As New DataSet
                Dim cmd As New System.Data.OleDb.OleDbCommand
                cmd.Connection = ConnectionDBtc01
                cmd.CommandType = CommandType.Text
                cmd.CommandText = SQL
                Dim DA As New System.Data.OleDb.OleDbDataAdapter(cmd)
                DA.Fill(DT, "dd")
                Return DT
            Catch ex As Exception
                MessageBox.Show(ex.Message)
                Return Nothing
            End Try
        End Function

        Function GetDataScalar(ByVal SQL As String) As Object
            'select data one record and one field
            Try
                Dim re As Object
                Dim CMD As New System.Data.OleDb.OleDbCommand
                CMD.Connection = ConnectionDBtc01
                CMD.CommandText = SQL
                re = CMD.ExecuteScalar
                Return re
            Catch ex As Exception
                MessageBox.Show(ex.Message)
                Return Nothing
            End Try
        End Function
#End Region
    End Class
End Namespace


อันนี้โมดูลครับ
Code (VB.NET)
Module Module1
    Public DBObject As DATA.DBtc01

    Function StringConvert(ByVal txt As Object)
        Dim re As String = ""
        Try
            If txt Is Nothing Then
                re = ""
            ElseIf IsDBNull(txt) Then
                re = ""
            Else
                re = txt.ToString
            End If
        Catch ex As Exception
            MessageBox.Show(ex.Message)
        End Try
        Return re
    End Function
End Module





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









ประวัติการแก้ไข
2011-02-10 10:07:15
Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2011-02-10 10:04:40 By : mad74589 View : 1127 Reply : 6
 

 

No. 1



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



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


บรรทัด 88
Dim dt As New DataSet

จงสู้ต่อไปนะครับ จีบัน






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-02-10 11:50:42 By : kaimuk
 


 

No. 2



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



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


ตอบไม่ทันมีคนบอกก่อนแหละ อิอิ

แต่เพิ่มเติมนิดหน่อย

Dim dt As New DataSet()

มันน่าจะแบบนี้นะ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-02-10 12:07:11 By : angelrings0
 

 

No. 3



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



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


พิมพ์ตามที่บอกแล้วก็ยังเออเรออยู่ครับ ยังไงก็ขอบคุณสำหรับคำตอบนะครับ รอท่านต่ิไป
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-02-10 16:00:59 By : mad74589
 


 

No. 4



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



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


มันต้องแบบนี้ป่าวครับ

Dim dt As New DataSet()
dt = New OleDbcommand (SQL , Conn)


หรือไม่ก้อ
Dim dt As New DataSet()
dt = DBObject.GetData(SQL , Conn)

แบบนี้หรือป่าวคับ

เหมือนกับว่ามันหาอะไรสักอย่างไม่เจอเลยไม่สามารถทำ ขั้นตอนต่อ
ไปได้นะคับ ตามที่ดูน่าจะเป็นการ Clear แล้วให้ทำการ load ใหม่ใช้
ป่าวครับ ลองดูดี ดี อีกที่มันอันติดอะไรอย่าง สู้ ๆๆๆ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-02-10 16:17:24 By : angelrings0
 


 

No. 5



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



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


ที่ Module บรรทัดที่ 2
Public DBObject As New DATA.DBtc01

สู้ต่อไปนะครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-02-10 16:38:22 By : kaimuk
 


 

No. 6



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



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


ไม่รู้ว่า คุณเคยสั่ง
DBObject = New DATA.DBtc01

ก่อนมาเจอคำสั่งนี้หรือยัง
dt = DBObject.GetData(SQL)

ถ้าไม่แน่ใจ
ลอง Break Point ที่ dt = DBObject.GetData(SQL)
แล้วทดสอบด้วยคำสั่งข้างล่างที่ Immediate Window
?DBObject Is Nothing

ถ้าเป็น True ก็ควรแล้วที่จะเกิด
Object reference not set to an instance of an object.


ประวัติการแก้ไข
2011-02-10 17:14:57
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-02-10 17:10:52 By : หางอึ่ง
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : อัพเดทในฐานข้อมูลแล้วมันขึ้นerrorครับ ช่วยด้วยครับ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ 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 อัตราราคา คลิกที่นี่