none
並已達共用集區大小的最大值 RRS feed

  • 問題

  • dear all

    網站出現錯誤訊息:"...並已達共用集區大小的最大值"

    看過網路文章發現..都指向connect沒關..

    原來寫法

            '讀取各DDL的資料
            Dim WjsSybCon As SqlConnection = New SqlConnection(Session("connString"))
            Dim wjsdbCommand As New SqlCommand

            Dim my_tb As New Data.DataTable
            my_tb.Reset()
            Dim adp As New SqlDataAdapter()
            Try
                '讀取薪資歸屬員工編號
                With wjsdbCommand
                    .Connection = WjsSybCon
                    .CommandType = CommandType.Text
                    .CommandText = "select Empl_ID,Empl_Name from Employee order by Empl_ID"
                End With
                my_tb.Reset()
                adp.SelectCommand = wjsdbCommand
                adp.Fill(my_tb)
                ddlEmpl_ID.Items.Clear()
                ddlEmpl_ID.Items.Add("%")
                For aa As Integer = 0 To my_tb.Rows.Count - 1
                    ddlEmpl_ID.Items.Add(Trim(my_tb.Rows(aa).Item("Empl_ID")) & ":" & Trim(my_tb.Rows(aa).Item("Empl_Name")))
                Next aa
                ddlEmpl_ID.SelectedIndex = -1

            Catch ex As Exception
            Finally
                WjsSybCon.Close()
                adp.Dispose()
                wjsdbCommand.Dispose()
                WjsSybCon.Dispose()
                WjsSybCon = Nothing
            End Try
            '讀取DDL的資料 END

    這樣應該有關掉connection了,不知何還會出現錯誤??

    看文件提到用 using可以自動關掉coonnection ..

    現正在改寫成

            '讀取各DDL的資料
            Using dbconn As SqlConnection = New SqlConnection(Session("connString"))
                Using dbCommand As New SqlCommand

                    Dim my_tb As New Data.DataTable
                    my_tb.Reset()
                    Dim adp As New SqlDataAdapter()
                    Try
                        '讀取薪資歸屬員工編號
                        With dbCommand
                            .Connection = dbconn
                            .CommandType = CommandType.Text
                            .CommandText = "select Empl_ID,Empl_Name from Employee order by Empl_ID"
                        End With
                        my_tb.Reset()
                        adp.SelectCommand = dbCommand
                        adp.Fill(my_tb)
                        ddlEmpl_ID.Items.Clear()
                        ddlEmpl_ID.Items.Add("%")
                        For aa As Integer = 0 To my_tb.Rows.Count - 1
                            ddlEmpl_ID.Items.Add(Trim(my_tb.Rows(aa).Item("Empl_ID")) & ":" & Trim(my_tb.Rows(aa).Item("Empl_Name")))
                        Next aa
                        ddlEmpl_ID.SelectedIndex = -1

                    Catch ex As Exception
                    Finally 
                        adp.Dispose() 
                    End Try
                End Using
            End Using
            '讀取DDL的資料 END

    希望可以成功..萬一不行還有什麼方法或是我少做了什麼??

    如果不是用SqlDataAdapter()而是用SqlDataReader而沒有把SqlDataReader關掉呢?會不會有問題??

    請指點我一下..謝謝..


    • 已編輯 王振賢 2014年1月11日 下午 02:17
    2014年1月11日 上午 11:52

解答

所有回覆