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 > มีปัญหาเรื่องการ Try...Catch ครับ รบกวนท่านผู้รู้ด้วยครับ



 

มีปัญหาเรื่องการ Try...Catch ครับ รบกวนท่านผู้รู้ด้วยครับ

 



Topic : 064326



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



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




Code (VB.NET)
mySqlCon.Open()

                SQL = "SELECT Value FROM RunningNumber WHERE Name = 'InvoiceNo'"

                mySqlCmd = New SqlCommand(SQL, mySqlCon)

                Try

                    mySqlReader = mySqlCmd.ExecuteReader()
                    If mySqlReader.HasRows = True Then
                        While mySqlReader.Read()
                            txtInvoiceNo.Text = "INV" & Format(mySqlReader.Item(0), "000") & "/" & Year(Today)
                        End While
                    Else
                        MsgBox("Have No data")
                    End If
                    '  mySqlReader.Close()
                    'mySqlReader = Nothing
                mySqlCon.Open()

                SQL = "SELECT Value FROM RunningNumber WHERE Name = 'InvoiceNo'"

                mySqlCmd = New SqlCommand(SQL, mySqlCon)

                Try

                    mySqlReader = mySqlCmd.ExecuteReader()
                    If mySqlReader.HasRows = True Then
                        While mySqlReader.Read()
                            txtInvoiceNo.Text = "INV" & Format(mySqlReader.Item(0), "000") & "/" & Year(Today)
                        End While
                    Else
                        MsgBox("Have No data")
                    End If
                    '  mySqlReader.Close()
                    'mySqlReader = Nothing
                Catch ex As Exception
                    MsgBox(ex.Message)

                    Exit Sub
                End Try

                mySqlCon.Close()
                    MsgBox(ex.Message)

                    Exit Sub
                End Try

                mySqlCon.Close()


พอโปรแกรมรันมาเข้า While loop แล้วอ่ะคับ แทนที่มันจะทำจน End While
แต่กลับเด้งไปเข้าที่ Catch ex As Exception แทนอ่ะครับ ซึ่งบรรทัดนี้
txtInvoiceNo.Text = "INV" & Format(mySqlReader.Item(0), "000") & "/" & Year(Today)
คิดว่าไม่น่าจะผิดอะไรด้วยนะครับ

Catch ex As Exception
แจ้งว่า
The connection was not closed. The connection's current state is open.
ซึ้งผมก็ได้ไล่ดูหมดแล้ว ผมก็ mySqlCon.Close() หมดแล้วหนะครับ
รบกวนผู้รู้ด้วยนะครับ



Tag : .NET, VB.NET, VS 2010 (.NET 4.x)







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2011-08-05 17:11:00 By : PizzaCPE23 View : 1413 Reply : 9
 

 

No. 1



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

สมาชิกที่ใส่เสื้อไทยครีเอท

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

ใช้การ Debug ดูครับ ว่ามันไป Close ตอนไหนครับ






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-08-05 18:18:35 By : webmaster
 


 

No. 2



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



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


ลองแล้วครับ ก็คือ Open ที่แรกก็บรรทัดนั้นแหละครับ ยังไม่ได้ไป open ไหนก่อนเลย ผมลองใส่ Close หลายๆที่ดูแล้ว แต่ก็ไม่ได้อ่ะครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-08-06 02:21:31 By : PizzaCPE23
 

 

No. 3



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



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


Code (C#)
if (myCon.State == ConnectionState.Open)
            {
                myCon.Close();
            }
            myCon.Open();

เวลาจะเปิด Connect ให้เช็คก่อนครับ จะได้ไม่มีปัญหา
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-08-06 11:04:22 By : Marcuz
 


 

No. 4



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



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


ตอนที่คุณ Open รอบที่สองบรรทัดที่ 19 คุณยังไม่ได้ปิดเลยนะครับ
คุณ Comment ไว้นี้ครับ ถ้าเอาไปรัน มันก็ไม่ Close ให้สิครับ


ประวัติการแก้ไข
2011-08-06 11:31:25
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-08-06 11:30:26 By : Marcuz
 


 

No. 5



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



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


คุณ Boat ครับ คือผมลองใส่ไปดูครับเพื่อจะช่วย ได้ทีนี้ใส่ไปมันก็ไม่ได้ช่วยอะไรอ่ะครับ ผมเลยคอมเม้นไว้

คือผมได้ลอง Debug ดูนะครับพบว่า พอโปรแกรมรันมาจนถึง บรรทัดที่ 12 มันก็เด้งไปที่ Catch ex As Exception เลยครับแล้วก็ฟ้อง

ดังที่ได้บอกไว้อะคับ คือมันยังไม่ถึงตรงจะให้ Close อ่ะครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-08-06 11:50:18 By : PizzaCPE23
 


 

No. 6



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



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


ขออนุญาติ โพท Code ใหม่นะครับ
Code (VB.NET)
Protected Sub cmdISave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdISave.Click
        If txtInvoiceDate.Text = "" Then
            MsgBox("กรุณาใส่วันที่ก่อน", MsgBoxStyle.OkOnly)
            Exit Sub
        
        Else
            If (txtInvoiceNo.Text = "") Then
                ' New Invocie
                Dim SQL As String

                mySqlCon.Open()

                SQL = "SELECT Value FROM RunningNumber WHERE Name = 'InvoiceNo'"

                mySqlCmd = New SqlCommand(SQL, mySqlCon)
                Try

                    mySqlReader = mySqlCmd.ExecuteReader
                    While mySqlReader.Read
                        txtInvoiceNo.Text = "INV" & Format(mySqlReader.Item(0), "000") & "/" & Year(Today)
                    End While
                    mySqlReader.Close()

                Catch ex As Exception
                    MsgBox(ex.Message)
                    Exit Sub
                End Try

                Try
                    Dim strInvoiceNo As String
                    strInvoiceNo = txtInvoiceNo.Text
                    Dim BCDate As String
                    BCDate = txtInvoiceDate.Text.Substring(0, txtInvoiceDate.Text.Length - 4) & CStr(CInt(txtInvoiceDate.Text.Substring(txtInvoiceDate.Text.Length - 4)) - 543)


                    SQL = "INSERT INTO Invoice (InvoiceNo, InvoiceDate, CustomerCode, TotalAmount, VAT, AmountDue) " & _
                          " VALUES ('" & strInvoiceNo & "',convert(datetime,'" & BCDate & "',103), '" & txtCustomerCode.Text & "' , " & _
                          " '" & Format(txtTotalAmount.Text, "General Number") & "','" & Format(txtVAT.Text, "General Number") & "','" & Format(txtAmountDue.Text, "General Number") & "')"

                    mySqlCmd = New SqlCommand(SQL, mySqlCon)
                    mySqlCmd.ExecuteNonQuery()

                    Dim i As Integer
                    For i = 1 To row_coll.Count


                        SQL = "INSERT INTO InvoiceLineItem (InvoiceNo, LineItemNo, ProductCode, ProductName, Quantity, UnitPrice, Units, ExtendedPrice) " & _
                              " VALUES ('" & strInvoiceNo & "','" & i & "'," & _
                              "'" & row_coll.Item(i).item(2) & "'," & _
                              "'" & row_coll.Item(i).item(3) & "'," & _
                              "'" & Format(row_coll.Item(i).item(4), "General Number") & "'," & _
                              "'" & Format(row_coll.Item(i).item(5), "General Number") & "'," & _
                              "'" & row_coll.Item(i).item(6) & "'," & _
                              "'" & Format(row_coll.Item(i).item(7), "General Number") & "')"
                        mySqlCmd = New SqlCommand(SQL, mySqlCon)
                        mySqlCmd.ExecuteNonQuery()
                    Next

                    SQL = "UPDATE RunningNumber SET Value = Value + 1 WHERE Name = 'InvoiceNo'"
                    mySqlCmd = New SqlCommand(SQL, mySqlCon)
                    mySqlCmd.ExecuteNonQuery()

                    UnSetEditMode()

                    MsgBox("บันทึกเรียบร้อยแล้ว", MsgBoxStyle.OkOnly)

                Catch ex As Exception
                    MsgBox(ex.Message)
                End Try

                mySqlCon.Close()

            Else
                Dim SQL As String
                mySqlCon.Open()

                Try
                    Dim BCDate As String
                    BCDate = txtInvoiceDate.Text.Substring(0, txtInvoiceDate.Text.Length - 4) & CStr(CInt(txtInvoiceDate.Text.Substring(txtInvoiceDate.Text.Length - 4)) - 543)
                    SQL = "UPDATE Invoice SET InvoiceDate = Convert(Datetime,'" & BCDate & "',103) " & _
                          " ,TotalAmount = '" & Format(txtTotalAmount.Text, "General Number") & "' " & _
                          " ,CustomerCode = '" & txtCustomerCode.Text & "' " & _
                          " ,VAT = '" & Format(txtVAT.Text, "General Number") & "' " & _
                          " ,AmountDue = '" & Format(txtAmountDue.Text, "General Number") & "' " & _
                          "WHERE InvoiceNo = '" & txtInvoiceNo.Text & "'"
                    mySqlCmd = New SqlCommand(SQL, mySqlCon)
                    mySqlCmd.ExecuteNonQuery()

                    SQL = "DELETE FROM InvoiceLineItem WHERE InvoiceNo = '" & txtInvoiceNo.Text & "'"
                    mySqlCmd = New SqlCommand(SQL, mySqlCon)
                    mySqlCmd.ExecuteNonQuery()

                    Dim i As Integer
                    For i = 1 To row_coll.Count
                        SQL = "INSERT INTO InvoiceLineItem (InvoiceNo, LineItemNo, ProductCode, ProductName, Quantity, UnitPrice, Units, ExtendedPrice) " & _
                              " VALUES ('" & txtInvoiceNo.Text & "','" & i & "'," & _
                              "'" & row_coll.Item(i).item(2) & "'," & _
                              "'" & row_coll.Item(i).item(3) & "'," & _
                              "'" & Format(row_coll.Item(i).item(4), "General Number") & "'," & _
                              "'" & Format(row_coll.Item(i).item(5), "General Number") & "'," & _
                               "'" & row_coll.Item(i).item(6) & "'," & _
                              "'" & Format(row_coll.Item(i).item(7), "General Number") & "')"
                        mySqlCmd = New SqlCommand(SQL, mySqlCon)
                        mySqlCmd.ExecuteNonQuery()
                    Next

                    UnSetEditMode()

                    MsgBox("บันทึกเรียบร้อยแล้ว", MsgBoxStyle.OkOnly)

                Catch ex As Exception
                    MsgBox(ex.Message)
                End Try

                mySqlCon.Close()
            End If
        End If

    End Sub

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-08-06 11:51:46 By : PizzaCPE23
 


 

No. 7



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



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


ตอบความคิดเห็นที่ : 5 เขียนโดย : PizzaCPE23 เมื่อวันที่ 2011-08-06 11:50:18
รายละเอียดของการตอบ ::
ทำไมต้องวน While ด้วยครับ
mySqlReader.Read()
txtInvoiceNo.Text
อ่านค่าเดียวไม่ใช่เหรอครับ

ไม่งั้นก็ลองดูค่าใน mySqlReader.Item(0) ว่ามันได้ค่าไหม? ในตอนที่ Debug



ประวัติการแก้ไข
2011-08-06 12:02:19
2011-08-06 12:05:00
2011-08-06 12:09:17
2011-08-06 12:10:44
2011-08-06 12:13:16
2011-08-06 12:23:04
2011-08-06 12:23:26
2011-08-06 12:24:39
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-08-06 12:00:59 By : Marcuz
 


 

No. 8



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



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


ขอบคุณทุกท่านมากนะครับที่มาช่วยเหลือผม
ผมได้ทำทุกวิธีทางแล้ว DeskCheck ก็แล้วสุดท้าย
โค้ดผมไม่ได้ผิดอะไรเลยครับ ถูกหมดทุกบรรทัดตั้งแต่แรกแล้ว
ที่ผมทำคือ ลบ textbox ที่ชื่อ txtInvoiceNo ออกแล้วสร้าง textbox ใหม่ใช้ชื่อเดิมแล้วลองรัน
ปรากฏว่าผ่านครับ งงไปเลยทีเดียวว่า ก็ไม่เข้าใจว่าทำไมทำแบบนี้แล้วถึงผ่าน ฮ่าๆๆๆๆ งงเหมือนกัน
ยังไงก็ขอบคุณทุกท่านมากๆครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-08-07 13:01:56 By : PizzaCPE23
 


 

No. 9



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

สมาชิกที่ใส่เสื้อไทยครีเอท

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

เกี่ยวกันไหม๊ครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-08-08 06:40:06 By : webmaster
 

   

ค้นหาข้อมูล


   
 

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