Binding huge data into gridview asp.net

Hi
when i retrieve the data from my sql 2005 (more than 20 000 record)
and binding it to the gridview it takes minumim one minute or more

so i implement paging on the grid and im just binding 20 records based on the current gridview page index
and it worked
but now as my data is increasing i have more than 30 000 the retreving of the 30 000 record is consuming some time
so what i should do to increase the speed
im using VS 2008 Vb.net
kamal_2002Asked:
Who is Participating?
 
lazyberezovskyCommented:
You can add pagination to your SQL stored procedure:
http://www.davidhayden.com/blog/dave/archive/2005/12/30/2652.aspx
0
 
CodeCruiserCommented:
How do you load data? Do you use stored procedures?
0
Cloud Class® Course: MCSA MCSE Windows Server 2012

This course teaches how to install and configure Windows Server 2012 R2.  It is the first step on your path to becoming a Microsoft Certified Solutions Expert (MCSE).

 
kamal_2002Author Commented:
hi
some times im using stored procedures and some times i write the sql statement in code behind
one morw problem is that
when i get the data from the sql 2005 im doing alot of filters based on the situation
so it would be very difficult to me to send all the filter parameters to the stored procedure
0
 
CodeCruiserCommented:
Show the code which applies filter.
0
 
kamal_2002Author Commented:
      Dim dt As New DataTable
            dt = (New Car_Main).Get_Search_Cars()




            If Request.QueryString("from") = "MainPage" Then


                Dim dvFilter As DataView
                dvFilter = dt.DefaultView
                Dim filter As String = "("
                If Request.QueryString("MainCarType") <> -1 Then
                    filter &= "  MainCarTypeID = " & CInt(killChars(Request.QueryString("MainCarType"))) '& ")"
                    filter &= "   and  "

                End If

                If Request.QueryString("SubCarType") <> -1 Then
                    filter &= "  SubCarTypeID = " & CInt(killChars(Request.QueryString("SubCarType"))) '& ")"
                    filter &= "   and  "
                End If



                If Request.QueryString("ExbID") <> Nothing Then
                    filter &= "  ExID =4"
                    filter &= "   and  "
                End If

                If Request.QueryString("Year") <> -1 Then




                    Select Case Request.QueryString("Year") '= 19951990 Then



                        Case 19951990
                            filter &= " YearModel >=1990 and  YearModel <=1995 "
                        Case 1990
                            filter &= " YearModel <=1990  "
                        Case 20052000
                            filter &= " YearModel >=2000 and  YearModel <=2005  "
                        Case 20102005
                            filter &= " YearModel >=2005 and  YearModel <=2010  "

                        Case Else
                            filter &= " YearModel = " & CInt(killChars(Request.QueryString("Year"))) '& ")"
                    End Select





                    filter &= "   and  "
                End If

                If Request.QueryString("Price") <> -1 Then



                    Select Case killChars(Request.QueryString("Price"))

                        Case 20000
                            filter &= "   CarPrice >=20000 "

                        Case 1520
                            filter &= "   CarPrice >=15000 and  CarPrice<=20000 "

                        Case 1015
                            filter &= "   CarPrice >=10000 and  CarPrice<=15000 "


                        Case 510
                            filter &= "   CarPrice >=5000 and  CarPrice<=10000 "

                        Case 5
                            filter &= "   CarPrice <=5000 "

                    End Select

                    ' filter &= "   CarPrice = " & CDbl(killChars(Request.QueryString("Price"))) '& ")"

                End If
                filter = filter.Trim
                If filter.EndsWith("and") Then
                    ' filter = filter.Trim
                    filter = filter.Remove(filter.LastIndexOf("and"), 3)
                End If
                filter &= ")"

                If filter <> "()" Then
                    dvFilter.RowFilter = filter
                    dt = dvFilter.ToTable
                End If

            Else

                If Request.QueryString("from") = "MainPrice_MainPage" Then

                    Dim dvFilter As DataView
                    dvFilter = dt.DefaultView

                    Select Case killChars(Request.QueryString("Price"))

                        Case 1015
                            dvFilter.RowFilter = "  ( CarPrice >=10000 and  CarPrice<=15000 )"
                        Case 1520
                            dvFilter.RowFilter = "  ( CarPrice >=15000 and  CarPrice<=20000 )"

                        Case 25000
                            dvFilter.RowFilter = "  ( CarPrice >=25000 )"

                        Case 1000
                            dvFilter.RowFilter = "  ( CarPrice <=1000 )"

                        Case 10003000
                            dvFilter.RowFilter = "  ( CarPrice >=1000 and  CarPrice<=3000 )"

                        Case 30005000
                            dvFilter.RowFilter = "  ( CarPrice >=3000 and  CarPrice<=5000 )"


                        Case 500010000
                            dvFilter.RowFilter = "  ( CarPrice >=5000 and  CarPrice<=10000 )"




                    End Select
                    dt = dvFilter.ToTable
                Else
                    ' Response.Redirect("CarSearch.aspx?AC=" & chkAirCondition.Checked & "&CarLoan=" & chkCarLoan.Checked & "&OneDoor=" & chkCarOneDoor.Checked & "&FA=" & chkFullAdition.Checked & "&GA" & chkGearAuto.Checked & "&Leather" & chkLeather.Checked & "&PriceN" & chkPrice.Checked & "&WE" & chkWindowElectricity.Checked & "&from=CarDetailsExtra")



                    If Request.QueryString("from") = "CarDetailsExtra" Then

                        Dim dvFilter As DataView
                        dvFilter = dt.DefaultView

                        Dim filter As String = "("


                        '                        dbo.CarExtraDetails.Full_Additions,
                        'dbo.CarExtraDetails.Condition,
                        'dbo.CarExtraDetails.OneDoor,
                        'dbo.CarExtraDetails.Skin_brushes,
                        'dbo.CarExtraDetails.Price_is_negotiable,
                        'dbo.CarExtraDetails.Windows_Electricity,
                        'dbo.Payments.PaymentMethod,
                        'dbo.CarExtraDetails.CylindarNo,
                        If Request.QueryString("AC") = True Then
                            filter &= "Condition1 =1  and "
                        End If

                        If Request.QueryString("CarLoan") = True Then
                            filter &= "PaymentID=2 and "
                        End If

                        If Request.QueryString("OneDoor") = True Then
                            filter &= " OneDoor =1 and"
                        End If

                        If Request.QueryString("FA") = True Then
                            filter &= " Full_Additions =1  and"
                        End If

                        If Request.QueryString("GA") = True Then
                            filter &= " GearTypeID=1 and "
                        End If

                        If Request.QueryString("Leather") = True Then
                            filter &= " Skin_brushes =1 and  "
                        End If


                        If Request.QueryString("PriceN") = True Then
                            filter &= " Price_is_negotiable=1 and  "
                        End If



                        If Request.QueryString("WE") = True Then
                            filter &= "Windows_Electricity =1 "
                        End If



                        filter = filter.Trim
                        If filter.EndsWith("and") Then
                            ' filter = filter.Trim
                            filter = filter.Remove(filter.LastIndexOf("and"), 3)
                        End If
                        filter &= ")"

                        If filter <> "()" Then
                            dvFilter.RowFilter = filter
                            dt = dvFilter.ToTable
                        End If



                    Else

                        If Request.QueryString("from") = "Category_MainPage" Then

                            Dim dvFilter As DataView
                            dvFilter = dt.DefaultView

                            If IsNumeric(Request.QueryString("Category")) Then
                                dvFilter.RowFilter = "(CarCategorID=" & Request.QueryString("Category") & ")"
                                dt = dvFilter.ToTable

                            End If



                        Else

                            If Request.QueryString("from") = "MostSeen" Then

                                Dim dvFilter As DataView
                                dvFilter = dt.DefaultView

                                dvFilter.Sort = "NoOfTimesThisCarIsSeen desc"
                                dt = dvFilter.ToTable



                            Else
                                If Request.QueryString("from") = "Main_Car_Type" Then


                                    Dim dvFilter As DataView
                                    dvFilter = dt.DefaultView
                                    If Request.QueryString("MainCarType") <> -1 Then

                                        Dim filter As String = "("


                                        filter &= "  MainCarTypeID = " & CInt(killChars(Request.QueryString("MainCarType"))) & ")"

                                        dvFilter.RowFilter = filter
                                        dt = dvFilter.ToTable

                                    End If


                                Else


                                    If Request.QueryString("from") = "AdvanceCarDetails" Then

                                        Dim dvFilter As DataView
                                        dvFilter = dt.DefaultView

                                        Dim filter As String = "("


                                        '                        dbo.CarExtraDetails.Full_Additions,
                                        'dbo.CarExtraDetails.Condition,
                                        'dbo.CarExtraDetails.OneDoor,
                                        'dbo.CarExtraDetails.Skin_brushes,
                                        'dbo.CarExtraDetails.Price_is_negotiable,
                                        'dbo.CarExtraDetails.Windows_Electricity,
                                        'dbo.Payments.PaymentMethod,
                                        'dbo.CarExtraDetails.CylindarNo,
                                        If Request.QueryString("AC") = True Then
                                            filter &= "Condition1 =1  and "
                                        End If

                                        If Request.QueryString("CarLoan") = True Then
                                            filter &= "PaymentID=2 and "
                                        End If

                                        If Request.QueryString("OneDoor") = True Then
                                            filter &= " OneDoor =1 and"
                                        End If

                                        If Request.QueryString("FA") = True Then
                                            filter &= " Full_Additions =1  and"
                                        End If

                                        If Request.QueryString("GA") = True Then
                                            filter &= " GearTypeID=1 and "
                                        End If

                                        If Request.QueryString("Leather") = True Then
                                            filter &= " Skin_brushes =1 and  "
                                        End If


                                        If Request.QueryString("PriceN") = True Then
                                            filter &= " Price_is_negotiable=1 and  "
                                        End If



                                        If Request.QueryString("WE") = True Then
                                            filter &= "Windows_Electricity =1 "
                                        End If


                                        If IsNumeric(Request.QueryString("ExbID")) Then
                                            filter &= "ExID = " & Request.QueryString("ExbID")
                                        End If



                                        filter = filter.Trim
                                        If filter.EndsWith("and") Then
                                            ' filter = filter.Trim
                                            filter = filter.Remove(filter.LastIndexOf("and"), 3)
                                        End If
                                        filter &= ")"

                                        If filter <> "()" Then
                                            dvFilter.RowFilter = filter
                                            dt = dvFilter.ToTable
                                        End If






                                    Else


                                        If Request.QueryString("from") = "MainPageExb" Then


                                            Dim dvFilter As DataView
                                            dvFilter = dt.DefaultView
                                            Dim filter As String = "("
                                            If Request.QueryString("MainCarType") <> -1 Then
                                                filter &= "  MainCarTypeID = " & CInt(killChars(Request.QueryString("MainCarType"))) '& ")"
                                                filter &= "   and  "

                                            End If

                                            If IsNumeric(Request.QueryString("ExbID")) Then
                                                filter &= "ExID = " & Request.QueryString("ExbID")
                                            End If


                                            If Request.QueryString("SubCarType") <> -1 Then
                                                filter &= "  SubCarTypeID = " & CInt(killChars(Request.QueryString("SubCarType"))) '& ")"
                                                filter &= "   and  "
                                            End If

                                            If Request.QueryString("Year") <> -1 Then




                                                Select Case Request.QueryString("Year") '= 19951990 Then



                                                    Case 19951990
                                                        filter &= " YearModel >=1990 and  YearModel <=1995 "
                                                    Case 1990
                                                        filter &= " YearModel <=1990  "
                                                    Case 20052000
                                                        filter &= " YearModel >=2000 and  YearModel <=2005  "
                                                    Case 20102005
                                                        filter &= " YearModel >=2005 and  YearModel <=2010  "

                                                    Case Else
                                                        filter &= " YearModel = " & CInt(killChars(Request.QueryString("Year"))) '& ")"
                                                End Select





                                                filter &= "   and  "
                                            End If

                                            If Request.QueryString("Price") <> -1 Then



                                                Select Case killChars(Request.QueryString("Price"))

                                                    Case 20000
                                                        filter &= "   CarPrice >=20000 "

                                                    Case 1520
                                                        filter &= "   CarPrice >=15000 and  CarPrice<=20000 "

                                                    Case 1015
                                                        filter &= "   CarPrice >=10000 and  CarPrice<=15000 "


                                                    Case 510
                                                        filter &= "   CarPrice >=5000 and  CarPrice<=10000 "

                                                    Case 5
                                                        filter &= "   CarPrice <=5000 "

                                                End Select

                                                ' filter &= "   CarPrice = " & CDbl(killChars(Request.QueryString("Price"))) '& ")"

                                            End If
                                            filter = filter.Trim
                                            If filter.EndsWith("and") Then
                                                ' filter = filter.Trim
                                                filter = filter.Remove(filter.LastIndexOf("and"), 3)
                                            End If
                                            filter &= ")"

                                            If filter <> "()" Then
                                                dvFilter.RowFilter = filter
                                                dt = dvFilter.ToTable
                                            End If






                                        Else

                                            'advance search from findcar


                                            If Request.QueryString("from") = "FindCar" Then


                                                Dim dvFilter As DataView
                                                dvFilter = dt.DefaultView
                                                Dim filter As String = "("
                                                If Request.QueryString("MainCarType") <> Nothing Then
                                                    filter &= "  MainCarTypeID = " & CInt(killChars(Request.QueryString("MainCarType"))) '& ")"
                                                    filter &= "   and  "

                                                End If

                                                If Request.QueryString("SubCarType") <> Nothing Then
                                                    filter &= "  SubCarTypeID = " & CInt(killChars(Request.QueryString("SubCarType"))) '& ")"
                                                    filter &= "   and  "
                                                End If

                                                If Request.QueryString("Year") <> Nothing Then




                                                    Select Case Request.QueryString("Year") '= 19951990 Then



                                                        Case 19951990
                                                            filter &= " YearModel >=1990 and  YearModel <=1995 "
                                                        Case 1990
                                                            filter &= " YearModel <=1990  "
                                                        Case 20052000
                                                            filter &= " YearModel >=2000 and  YearModel <=2005  "
                                                        Case 20102005
                                                            filter &= " YearModel >=2005 and  YearModel <=2010  "

                                                        Case Else
                                                            filter &= " YearModel = " & CInt(killChars(Request.QueryString("Year"))) '& ")"
                                                    End Select





                                                    filter &= "   and  "
                                                End If

                                                If Request.QueryString("Price") <> Nothing Then



                                                    Select Case killChars(Request.QueryString("Price"))

                                                        Case 20000
                                                            filter &= "   CarPrice >=20000 "

                                                        Case 1520
                                                            filter &= "   CarPrice >=15000 and  CarPrice<=20000 "

                                                        Case 1015
                                                            filter &= "   CarPrice >=10000 and  CarPrice<=15000 "


                                                        Case 510
                                                            filter &= "   CarPrice >=5000 and  CarPrice<=10000 "

                                                        Case 5
                                                            filter &= "   CarPrice <=5000 "

                                                    End Select

                                                    ' filter &= "   CarPrice = " & CDbl(killChars(Request.QueryString("Price"))) '& ")"
                                                    filter &= "   and  "
                                                End If

                                                '''''''''''''''''''''''''''''''''''''''

                                                If Request.QueryString("CarStstus") <> Nothing Then
                                                    filter &= " CarConditionID=" & Request.QueryString("CarStstus")
                                                    filter &= "   and  "
                                                End If

                                                If Request.QueryString("CarType") <> Nothing Then
                                                    filter &= "CarCategorID=" & Request.QueryString("CarType")
                                                    filter &= "   and  "
                                                End If




                                                If Request.QueryString("City") <> Nothing Then
                                                    filter &= " CityID=  " & Request.QueryString("City")
                                                    filter &= "   and  "
                                                End If



                                                If Request.QueryString("InsideColor") <> Nothing Then

                                                    filter &= " InsideColor= " & Request.QueryString("InsideColor")
                                                    filter &= "   and  "
                                                End If




                                                If Request.QueryString("ExID") <> Nothing Then

                                                    filter &= " ExID=4"
                                                    filter &= "   and  "
                                                End If

                                                If Request.QueryString("Insurance") <> Nothing Then

                                                    filter &= " InsuranceID= " & Request.QueryString("Insurance")
                                                    filter &= "   and  "

                                                End If


                                                If Request.QueryString("OutSideColor") <> Nothing Then
                                                    filter &= " OutSideColor= " & Request.QueryString("OutSideColor")
                                                    filter &= "   and  "
                                                End If



                                                If Request.QueryString("ABS") <> Nothing Then
                                                    filter &= "  ABS_Break=1 "
                                                    filter &= "   and  "
                                                End If


                                                If Request.QueryString("AC") <> Nothing Then
                                                    filter &= " Condition =1 "
                                                    filter &= "   and  "
                                                End If


                                                If Request.QueryString("Airbag") <> Nothing Then
                                                    filter &= "  Air_bags=1 "
                                                    filter &= "   and  "
                                                End If


                                                If Request.QueryString("Alarm") <> Nothing Then
                                                    filter &= "  Alarm_system=1 "
                                                    filter &= "   and  "
                                                End If


                                                If Request.QueryString("AutoPark") <> Nothing Then
                                                    filter &= " Auto_Parking =1 "
                                                    filter &= "   and  "
                                                End If


                                                If Request.QueryString("Centerlock") <> Nothing Then
                                                    filter &= "  Center_Lock=1 "
                                                    filter &= "   and  "
                                                End If


                                                If Request.QueryString("ElectricitySeats") <> Nothing Then
                                                    filter &= "  Electricity_Seats=1 "
                                                    filter &= "   and  "
                                                End If


                                                If Request.QueryString("GPRS") <> Nothing Then
                                                    filter &= "  GPRS=1 "
                                                    filter &= "   and  "
                                                End If


                                                If Request.QueryString("LCD") <> Nothing Then
                                                    filter &= "  LCD_Screen=1 "
                                                    filter &= "   and  "
                                                End If


                                                If Request.QueryString("Leather") <> Nothing Then
                                                    filter &= "  Skin_brushes=1 "
                                                    filter &= "   and  "
                                                End If


                                                If Request.QueryString("Remote") <> Nothing Then
                                                    filter &= "  Remote_Control=1 "
                                                    filter &= "   and  "
                                                End If



                                                If Request.QueryString("RoofMoving") <> Nothing Then
                                                    filter &= "  RoofMoving=1 "
                                                    filter &= "   and  "
                                                End If


                                                If Request.QueryString("SeatsACHeat") <> Nothing Then
                                                    filter &= "  Seats_With_Condition=1 "
                                                    filter &= "   and  "
                                                End If


                                                If Request.QueryString("Sensor") <> Nothing Then
                                                    filter &= "  Sensors=1 "
                                                    filter &= "   and  "
                                                End If


                                                If Request.QueryString("SideAirBag") <> Nothing Then
                                                    filter &= " Side_air_bags =1 "
                                                    filter &= "   and  "
                                                End If


                                                If Request.QueryString("SpeedControl") <> Nothing Then
                                                    filter &= "  Speed_Control= 1"
                                                    filter &= "   and  "
                                                End If


                                                If Request.QueryString("Spoiler") <> Nothing Then
                                                    filter &= "  Spoilar=1 "
                                                    filter &= "   and  "
                                                End If


                                                If Request.QueryString("topWindow") <> Nothing Then
                                                    filter &= " window_Top =1 "
                                                    filter &= "   and  "
                                                End If

                                                If Request.QueryString("Gear") <> Nothing Then
                                                    filter &= " GearTypeID =  " & Request.QueryString("Gear")
                                                    filter &= "   and  "
                                                End If

                                                If Request.QueryString("Tyers") <> Nothing Then
                                                    filter &= " Tyers_Jantat =1 "
                                                    filter &= "   and  "
                                                End If



                                                filter = filter.Trim
                                                If filter.EndsWith("and") Then
                                                    ' filter = filter.Trim
                                                    filter = filter.Remove(filter.LastIndexOf("and"), 3)
                                                End If
                                                filter &= ")"

                                                If filter <> "()" And filter <> "(   )" Then
                                                    dvFilter.RowFilter = filter
                                                    dt = dvFilter.ToTable
                                                End If
                                            End If




                                        End If




                                    End If




                                End If





                            End If

                        End If


                        'Category=6&from=Category_MainPage





                    End If














                End If


            End If
0
 
CodeCruiserCommented:
Wow. What performance do you expect from all that code. Try to simplify the code. What is the purpose of the page?
0
 
kamal_2002Author Commented:
im using this code in Car Search Page
we have more than 2000 cars
and this page is used to search for cars
0
 
lazyberezovskyCommented:
You are creating filter string in your code. Why not to create entire SQL query and send it to database? You will avoid receiving all cars and low speed filtering in DataView.
0
 
kamal_2002Author Commented:
i got the idea for solving my problem as the following
1)building the query in the code and then sending it to the DB
2)using paging at the DB level
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.