# برنامه نویسی با محصولات مایکروسافت > برنامه نویسی مبتنی بر Microsoft .Net Framework > ASP.NET Web Forms > سوال: دلیل بروز خطای Object reference not set to an instance of an object چیست؟

## A.Eimani

سلام دوستان 
من یک صفحه دارم به عنوان گالری تصاویر که وقتی چند tab از دسته بندی های مختلف باز میکنم به این صورت : http://***/Gallery.aspx?Cat=4
این ارور رو میده :
1.jpg
و وقتی بعدش که این ارور رو داد بک میکنم یا صفحه دیگه ای رو ادرس میدم این ارور رو میده :
2.jpg

در ضمن من تمام کانکشن ها رو با try  finally میبندم

این کد ASP.NET هست ممکن هست بخاطر این باشه؟ :

<asp:Repeater ID="Repeater2" runat="server">
    <ItemTemplate>
        <a class="vln" title="<%# Container.dataitem("CatName") %>" href="<%# geturl(Container.dataitem("id")) %>"><img width="168px" height="110px" src="<%# Container.dataitem("Catpic") %>" alt="<%# Container.dataitem("catdes") %>"/><div><%# Container.dataitem("catName") %></div></a>
    </ItemTemplate>
</asp:Repeater>
  

میشه راهنمایی کنید مشکل از کجاست؟

----------


## persian_bigboy

دوست من زیاد سخت نیست فهمیدنش . شما یک فیلد رو داری استفاده میکینی که در SELECT نیست همین و برنامه خطا میده یا اینکه DS رو اشتباه پر کردی همین .

----------


## persian_bigboy

راستی عکس دوم رو الان دیدم . 

دوست وخوبـــــــــــــــــــــ  ـــــــــــــــــــــــــ  ـــــــــــــــــــــــــ  ــــــــــــــــــــم. همگی بخونین . 
شما کانکشن باز دارید . بعد بیشتر از 3 الی 5 کانکشن . و Pool سرور قفل میکنه . بگرد . ببین db Connection ها رو چک کن . بیشتر این مشکل زمانی هست که شما SQLDataReader استفاده کنی . مشکل از Repeater نیست .

----------


## A.Eimani

*در ضمن من تمام کانکشن ها رو با try  finally میبندم
*و هیچ کانکشنی هم باز نمیمونه
خوب توصیه تون چیه؟
چی کنم؟

----------


## amirjalili

توصیه اینه که اول یه سری  به تایپیک مرجع کامل خطا ها و باگ ها بزنید. اگه به جواب نرسیدید بعد پست بدید.

----------


## persian_bigboy

البته واقعیت این هست ، که دوستان نیومده دنبال پاسخ هستند و با کلمه *جستجو* آشنا نیستند . ولی ما باز جواب را دادیم که نگن بی معرفت  :لبخند گشاده!:

----------


## alonemm

دوست من اگه شما مطمعن هستيد كه كانكشن رو بستيد شي SQLDataReader رو هم از بين ببريد.

 SQLDataReader.Disposed()

----------


## persian_bigboy

SQLDataReader.close()
این رو باید بزنی

----------


## Himalaya

البته بهتره با یه شرط اول چک بشه، در غیر این صورت ممکنه موقع close کردن ارور بده

            if (SQLDataReader != null)
                SQLDataReader.Close();

----------


## A.Eimani

دوستان عزیز هر کاری گفتید کردم بازم مشکل سرجاش بود و ارور Timeout expired رو میده بعداز 4 دفعه باز کردن صفحه
این کد اصلی من هست

با Pooling=False درست شده ولی خب اصولی نیست ولی اشکال هم فکر نمیکنم داشته باشه این سایت نهایت کاربر همزمانش شاید 50 تا باشه اشکال داره؟

چه تغییری توی این کد بدم که درست بشه؟

        Dim Cat As String = Request.QueryString("Cat")
        Dim ConnectionString As String = WebConfigurationManager.ConnectionStrings("AFLConn  ection").ConnectionString
        Dim Conn As New SqlConnection(ConnectionString)
        Dim CmdCheck As SqlCommand
        Dim Dtr As SqlDataReader

        If Cat <> "" Then
            Cat = Cat.ToString.Trim
            Try
                Conn.Open()
                CmdCheck = New SqlCommand("select * from Gallery where Cat_Id=" & Cat, Conn)
                Dtr = CmdCheck.ExecuteReader
                Repeater1.DataSource = Dtr
                Repeater1.DataBind()
            Catch ex As Exception
                NotCat.Visible = True
                NotCat.InnerText = "دسته ی مورد نظر یافت نشد!!!"
            Finally
                Conn.Close()
            End Try
        End If

----------


## A.Eimani

کسی هست مرا یاری کند؟

----------


## alilovegood

متاسفانه كسي نيست.
واسه من يه سوالي پيش اومده،چرا توي برنامه نويس دات اُ آر جي اينقدر سوال ها زياده و اين قدر جواب ها كم؟!

----------

