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,027

HOME > .NET Framework > Forum > Error:There is already an open DataReader associated with this Command which must be closed first.



 

Error:There is already an open DataReader associated with this Command which must be closed first.

 



Topic : 051372



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



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




มัน เออเล่อร์เรื่อง sqldataadapter หรือป่าวไม่แน่ใจเหมือนกันค่ะ ใช้ sql2000 Code (VB.NET)
   Sub ShowDatastock()
        'แสดงรายการของสินค้าให้เลือก
        DGStockL.Visible = True
        btnNewPur.Visible = True
        Dim AdapterStock As New SqlDataAdapter("Select * From Stock Order By SId", Conn)
      [font=Verdana]  AdapterStock.Fill(Ds, "DataStock")[/font]
        DGStockL.DataSource = Ds.Tables("dataStock")
        DGStockL.DataKeyField = "St_Id"
        DGStockL.DataBind()

    End Sub


ขึ้น เออเล่อร์ว่า Exception Details: System.InvalidOperationException: There is already an open DataReader associated with this Command which must be closed first.
There is already an open DataReader associated with this Command which must be closed first.



Tag : .NET, Web (ASP.NET), VB.NET







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2010-11-09 04:58:22 By : jaoa View : 4650 Reply : 7
 

 

No. 1



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

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

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


dataadapter เป็น connection less ใยต้องไปเปิด connection ทิ้งไว้

ให้ไปปิดบัดเดี๋ยวนี้ ก่อนจะสั่ง fill






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-11-09 08:21:31 By : tungman
 


 

No. 2



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



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


แก้ได้แล้วค่ะ ชอบคุณมากนะค่ะ

พี่ค่ะ ถ้า โปรแกรม มันไม่โชว์ ดา้ต้ากริด ค่ะ เพิ่มใหม่ ก็ ไม่ ไม่แสดงอ่ะ ค่ะ ทั้งที่ visible ก็เป้น true มีสิทธ์เป้นที่โปรแกรม มันไม่เอ๋อ หรือป่าวค่ะ

แล้ว ถ้า ต้องทำยังไง ค่ะ เพราะว่า โค้ดเครื่องอื่นหรือ หน้าบางหน้าที่เคยรันได้ก็มารันไม่ได้ค่ะ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-11-09 12:35:54 By : jaoa
 

 

No. 3

Guest


รบกวนหน่อยค่ะ ถ้าโค้ดแบบนี้ Error there is already an open datareader associated with this command which must be closed first ต้องแก้ไขตรงไหนค่ะ

Code (VB.NET)
Private Sub btnSave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSave.Click
        If txtMemberID.Text = "" Then
            MessageBox.Show("กรุณาระบุรหัสบัตรผู้ยืม !!!", "ผลการตรวจสอบ", MessageBoxButtons.OK, MessageBoxIcon.Information)
            txtMemberID.Focus()
            Exit Sub
        End If


        If lsvEquList.Items.Count = 0 Then
            MessageBox.Show("กรุณาป้อนรายการยืมอุปกรณ์ !!!", "ผลการตรวจสอบ", MessageBoxButtons.OK, MessageBoxIcon.Information)
            txtEquID.Focus()
            Exit Sub
        End If

        Dim sqlLend As String = ""
        Dim comLend As SqlCommand = New SqlCommand

        With Conn
            If .State = ConnectionState.Open Then .Close()
            .ConnectionString = strConn
            .Open()
        End With

        Try
            If MessageBox.Show("คุณต้องการบันทึกรายการยืมอุปกรณ์ ใช่หรือไม่?", "คำยืนยัน", MessageBoxButtons.YesNo, MessageBoxIcon.Question) = DialogResult.Yes Then

                AutoGenerateLendID()
                sqlLend = "INSERT INTO Lend (LendID,MemberID,NetReceived,Return_StatusAll) "
                sqlLend &= " VALUES('" & LastLendID & "',"
                sqlLend &= "'" & txtMemberID.Text & "',"
                sqlLend &= "0,'0')"

                With comLend
                    .CommandType = CommandType.Text
                    .CommandText = sqlLend
                    .Connection = Conn
                    .ExecuteNonQuery()
                End With

                Dim i As Integer = 0
                Dim tmpEquipmentID As String = ""

                Dim sqlEquipment As String = ""
                Dim tmpEquipmentInStock As Integer = 0
                Dim tmpEquipmentInLend As Integer = 0

                Dim tmpEquipmentNum As Integer = 0
                Dim tmpDateNum As Integer = 0
                Dim tmpAmount As Integer = 0
                Dim tmpSum As Integer = 0
                Dim tmpNet As Integer = 0

                Dim tmpLendDate As Date
                Dim tmpReturnDate As Date

                tmpLendDate = Date.Now


                For i = 0 To lsvEquList.Items.Count - 1
                    sqlLend = "INSERT INTO LendDetail(LendID,EquipmentID,Lend_Date,"
                    sqlLend &= " Return_Date,Lend_Num,AmountReceived,Return_Status)"
                    sqlLend &= " VALUES('" & LastLendID & "',"

                    tmpEquipmentID = lsvEquList.Items(i).SubItems(0).Text
                    tmpEquipmentNum = CInt(lsvEquList.Items(i).SubItems(2).Text)
                    tmpDateNum = CInt(lsvEquList.Items(i).SubItems(3).Text)
                    tmpAmount = CInt(lsvEquList.Items(i).SubItems(4).Text)

                    sqlLend &= "'" & tmpEquipmentID & "',"
                    sqlLend &= "'" & tmpLendDate & "',"

                    tmpReturnDate = tmpLendDate.AddDays(tmpDateNum)

                    sqlLend &= "'" & tmpReturnDate & "',"
                    sqlLend &= tmpEquipmentNum & ","

                    tmpSum = (tmpEquipmentNum * tmpDateNum * tmpAmount)

                    sqlLend &= tmpNet & ","
                    sqlLend &= "'0')"

                    With comLend
                        .CommandText = sqlLend
                        .ExecuteNonQuery()
                    End With

                    sqlEquipment = "SELECT EquipmentID,Equip_InStock,Equip_InLend FROM Equipment"
                    sqlEquipment &= " WHERE (EquipmentID='" & tmpEquipmentID & "')"

                    da.SelectCommand.CommandText = sqlEquipment
                    da.Fill(ds, "Equipment")

                    tmpEquipmentInStock = CInt(ds.Tables("Equipment").Rows(0).Item("Equip_InStock"))
                    tmpEquipmentInLend = CInt(ds.Tables("Equipment").Rows(0).Item("Equip_InLend"))
                    ds.Tables("Equipment").Clear()

                    sqlLend = "UPDATE Equipment"
                    sqlLend &= " SET Equip_InStock=" & tmpEquipmentInStock - tmpEquipmentNum & ","
                    sqlLend &= " Equip_InLend=" & tmpEquipmentInLend + tmpEquipmentNum
                    sqlLend &= " WHERE (EquipmentID='" & tmpEquipmentID & "')"

                    With comLend
                        .CommandText = sqlLend
                        .ExecuteNonQuery()
                    End With
                Next

                MessageBox.Show("บันทึกรายการยืมอุปกรณ์เรียบร้อยแล้ว !!!", "ผลการทำงาน", MessageBoxButtons.OK, MessageBoxIcon.Information)

                If IsInstallPrinter() = True Then
                    If prDlg.ShowDialog = DialogResult.OK Then
                        prDoc.Print()
                    End If
                Else
                    MessageBox.Show("กรุณาติดตั้งเครื่อง Printer ก่อนสั่งพิมพ์เอกสาร", "ผลการตรวจสอบ", MessageBoxButtons.OK, MessageBoxIcon.Information)
                End If

                ClearAllMemberData()
                ClearAllEquipmentData()
                lsvEquList.Items.Clear()

                cboPosition.SelectedIndex = 0
                txtMemberID.Enabled = True
                txtMemberID.Focus()
            End If
        Catch ErrProcess As Exception
            MessageBox.Show("ไม่สามารถบันทึกรายการยืมอุปกรณ์ได้ เนื่องจาก " & ErrProcess.Message, "ข้อผิดพลาด", MessageBoxButtons.OK, MessageBoxIcon.Warning)
            Exit Sub
        End Try
    End Sub

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-01-22 02:42:49 By : แต้ว
 


 

No. 4



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

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

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

ตอบความคิดเห็นที่ : 3 เขียนโดย : แต้ว เมื่อวันที่ 2013-01-22 02:42:49
รายละเอียดของการตอบ ::
จะต้อง Close ตัว DataReader อันแรกซะก่อนน่ะครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-01-22 05:52:39 By : mr.win
 


 

No. 5

Guest


ขอโทษค่ะ Close ตัว DataReader อันแรกตรงไหนค่ะ รบกวนด้วยนะค่ะ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-01-22 23:16:03 By : แต้ว
 


 

No. 6



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

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

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

คุณคงจะต้อง Debug แล้วครับ เพราะรู้สึกจะมี Sub ย่อยหลายตัว
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-01-23 05:41:12 By : mr.win
 


 

No. 7

Guest


ยังทำไม่ได้เลยค่ะ รบกวนแก้ไขให้ดูได้ไหมค่ะ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-01-30 22:46:49 By : แตว
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : Error:There is already an open DataReader associated with this Command which must be closed first.
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ 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 อัตราราคา คลิกที่นี่