Il secondo programma:
codice:
Public Partial Class Richieste
    Inherits System.Web.UI.Page

    Protected Overrides Sub OnLoadComplete(ByVal e As System.EventArgs)
        MyBase.OnLoadComplete(e)

        imgProgramma.ImageUrl = "~/images/p-" + ImmagineProgramma()
        If TabRichieste.ActiveViewIndex < 0 Then TabRichieste.ActiveViewIndex = 6
    End Sub

    Protected Overrides Sub OnPreRenderComplete(ByVal e As System.EventArgs)
        MyBase.OnPreRenderComplete(e)

        Proposte.NavigateUrl = "\Richieste.aspx?IDSw=" + CStr(Me.Request.QueryString("IDSW")) + _
                                              "&Stato=1"

        Approvate.NavigateUrl = "\Richieste.aspx?IDSw=" + CStr(Me.Request.QueryString("IDSW")) + _
                                              "&Stato=2"

        Incorso.NavigateUrl = "\Richieste.aspx?IDSw=" + CStr(Me.Request.QueryString("IDSW")) + _
                                              "&Stato=3"

        Conclusi.NavigateUrl = "\Richieste.aspx?IDSw=" + CStr(Me.Request.QueryString("IDSW")) + _
                                              "&Stato=4"

        Testati.NavigateUrl = "\Richieste.aspx?IDSw=" + CStr(Me.Request.QueryString("IDSW")) + _
                                              "&Stato=5"

        Distribuiti.NavigateUrl = "\Richieste.aspx?IDSw=" + CStr(Me.Request.QueryString("IDSW")) + _
                                              "&Stato=7"

        Anomalie.NavigateUrl = "\Richieste.aspx?IDSw=" + CStr(Me.Request.QueryString("IDSW")) + _
                                              "&Stato=0"

        dsRichieste.SelectCommand = Sql_Richieste()
        dsAnomalie.SelectCommand = Sql_Anomalie()
        
    End Sub

    Private Function ImmagineProgramma() As String
        Dim cnn As New SqlClient.SqlConnection(My.Settings.cnn) : cnn.Open()
        Dim cmd As New SqlClient.SqlCommand("Select immagine From Software Where IDSw = " + CStr(CInt(Me.Request.QueryString("IDSW"))), cnn)
        Try
            Return CStr(cmd.ExecuteScalar)
        Catch ex As Exception
            Return ""
        Finally
            cnn.Close()
            cnn.Dispose()
            cmd.Dispose()
        End Try

    End Function

    Private Function Sql_Richieste() As String
    Dim sw As Integer = CInt(Me.Request.QueryString("IDSW"))
        Dim Stato As Byte = 1
        If Me.Request.QueryString("Stato") IsNot Nothing Then _
           Stato = CByte(Me.Request.QueryString("Stato"))
        Dim o As Object = TabRichieste.Controls(TabRichieste.ActiveViewIndex)
        If o Is vProposte Then
            Stato = 1
        ElseIf o Is vApprovate Then
            Stato = 2
        ElseIf o Is vInCorso Then
            Stato = 3
        ElseIf o Is vConcluse Then
            Stato = 4
        ElseIf o Is vTestate Then
            Stato = 5
        ElseIf o Is vDistribuite Then
            Stato = 7
        End If

        Return _
        "Select case when R.Tipo = 0                                " + vbCrLf + _
        "            then '~/images/Anomalia.gif'                   " + vbCrLf + _
        "            else null                                      " + vbCrLf + _
        "        end                                    as Anomalia " + vbCrLf + _
        "     , R.ID                                                " + vbCrLf + _
        "     , case R.Stato                                        " + vbCrLf + _
        "        when 1 then dbo.md_F_ValToDate(R.DataRic)			" + vbCrLf + _
        "        when 2 then dbo.md_F_ValToDate(R.DataApp)			" + vbCrLf + _
        "        when 3 then dbo.md_F_ValToDate(R.DataIni)			" + vbCrLf + _
        "        when 4 then dbo.md_F_ValToDate(R.DataCon)	 		" + vbCrLf + _
        "        when 5 then dbo.md_F_ValToDate(R.DataTest)		    " + vbCrLf + _
        "        when 7 then dbo.md_F_ValToDate(R.DataDis)			" + vbCrLf + _
        "        else ''                                            " + vbCrLf + _
        "        end                                    as [Data]   " + vbCrLf + _
        "     , R.Gruppo                                            " + vbCrLf + _
        "     + case when len(R.SottoGruppo) > 0                    " + vbCrLf + _
        "            then ' - ' + R.SottoGruppo                     " + vbCrLf + _
        "            else ''                                        " + vbCrLf + _
        "        end									as [Gruppo] " + vbCrLf + _
        "     , R.Descrizione                                       " + vbCrLf + _
        "  from Richieste R                                         " + vbCrLf + _
        " where R.IDSw  = " + CStr(sw) + "                          " + vbCrLf + _
        "   and R.Stato = " + CStr(Stato) + "                       " + vbCrLf + _
        "order by case R.Stato                                      " + vbCrLf + _
        "           when 1 then R.DataRic		                    " + vbCrLf + _
        "           when 2 then R.DataApp		                    " + vbCrLf + _
        "           when 3 then R.DataIni		                    " + vbCrLf + _
        "           when 4 then R.DataCon		                    " + vbCrLf + _
        "           when 5 then R.DataTest		                    " + vbCrLf + _
        "           when 7 then R.DataDis		                    " + vbCrLf + _
        "           else 0                                          " + vbCrLf + _
        "        end desc                                           " + vbCrLf + _
        "    , R.ID                                                 "

    End Function

    Private Function Sql_Anomalie() As String
        Dim sw As Integer = CInt(Me.Request.QueryString("IDSW"))

        Return _
        "Select R.ID                                                " + vbCrLf + _
        "     , case R.Stato                                        " + vbCrLf + _
        "        when 1 then dbo.md_F_ValToDate(R.DataRic)			" + vbCrLf + _
        "        when 2 then dbo.md_F_ValToDate(R.DataApp)			" + vbCrLf + _
        "        when 3 then dbo.md_F_ValToDate(R.DataIni)			" + vbCrLf + _
        "        when 4 then dbo.md_F_ValToDate(R.DataCon)			" + vbCrLf + _
        "        when 5 then dbo.md_F_ValToDate(R.DataTest)			" + vbCrLf + _
        "        when 7 then dbo.md_F_ValToDate(R.DataDis)			" + vbCrLf + _
        "        else ''                                            " + vbCrLf + _
        "        end                                    as [Data]   " + vbCrLf + _
        "     , S.Descrizione                           as Stato    " + vbCrLf + _
        "     , R.Gruppo                                            " + vbCrLf + _
        "     + case when len(R.SottoGruppo) > 0                    " + vbCrLf + _
        "            then ' - ' + R.SottoGruppo                     " + vbCrLf + _
        "            else ''                                        " + vbCrLf + _
        "        end									as [Gruppo] " + vbCrLf + _
        "     , R.Descrizione                                       " + vbCrLf + _
        "From Richieste R                                           " + vbCrLf + _
        "        inner join Stati S                                 " + vbCrLf + _
        "        on R.Stato = S.Stato                               " + vbCrLf + _
        "Where R.IDSw  = " + CStr(sw) + "                           " + vbCrLf + _
        "   and R.Stato <> 0   -- Non approvate                     " + vbCrLf + _
        "   and R.Stato <> 1   -- Proposte                          " + vbCrLf + _
        "   and R.Stato <> 6   -- Rimandate                         " + vbCrLf + _
        "   and R.Stato <> 7   -- Distribuite                       " + vbCrLf + _
        "   and R.Stato <> 10  -- Eliminate                         " + vbCrLf + _
        "   and R.Tipo  = 0    -- Solo le anomalie                  " + vbCrLf + _
        "Order by case R.Stato                                      " + vbCrLf + _
        "           when 1 then R.DataRic		                    " + vbCrLf + _
        "           when 2 then R.DataApp		                    " + vbCrLf + _
        "           when 3 then R.DataIni		                    " + vbCrLf + _
        "           when 4 then R.DataCon		                    " + vbCrLf + _
        "           when 5 then R.DataTest		                    " + vbCrLf + _
        "           when 7 then R.DataDis		                    " + vbCrLf + _
        "           else 0                                          " + vbCrLf + _
        "        end desc                                           " + vbCrLf + _
        "    , R.ID                                                 "
    End Function


    Private Sub TabRichieste_ActiveViewChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles TabRichieste.ActiveViewChanged
        Dim o As Object = TabRichieste.Controls(TabRichieste.ActiveViewIndex)
        gProposte.Visible = True
        If Not (o Is vAnomalie) Then Exit Sub

        gProposte.Visible = False
    End Sub
End Class
Ecco,questi sono i due programmi principali che uso per questo sito.Il risultato a video è un menu con 7 tab,ognuna "vuota"...cliccandoci sopra l'errore che mi fornisce è quello che ho detto prima.In teoria invece dovrebbe aprirmi una tabella con all'interno dei dati presi da database
Grazie ancora !!