+ Rispondi al Thread
Pagina 2 di 4 primaprima 1234 ultimoultimo
Visualizzazione dei risultati da 11 a 20 su 39

Discussione: [ASP.Net]Redirect da più database

  1. #11
    L'avatar di SignIn
    SignIn non è in linea Scribacchino
    Luogo
    Milano
    Post
    1,026
    ...la prima cosa che devi fare è capire gli errori che vengono segnalati dall'IDE di VS(Visual Studio)
    ....seconda cosa prima ti sforzi ad usare il debug meglio sarà
    codice:
     <script runat="server"> => cosa c'entra sto tag. Devi separare il codice dal markup
    
    Partial Public Class _Default
        Inherits System.Web.UI.Page
        Private indirizzo As String = String.Empty
        Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Dim Nome As String = "Linea.text" => non serve usare una variabile di stringa se poi devi concatenarla
        'Percorso del database (per ora è in una cartella "prove")
         Dim PercorsoDB As String = "../prove/dati/" &  Nome => il percorso non dovrebbe puntare ad un file mdf?
        Dim ConnString As String = "Provider= Microsoft.Jet.OLEDB.4.0;"  & _
           "Data Source =" & PercorsoDB
         Dim Cn As New OleDbConnection(ConnString)
        Dim ds as DataSet = new DataSet()
          Dim dr As OleDbDataReader
        Dim cmd As OleDbDataAdapter (select * from membri", cn)
       'Prelevo l'indirizzo dal campo "Url" del database, corrispondente al codice inserito nel secondo textbox 
       Dim indirizzo as string = "select Url from membri where Codice = " & Login.text
       cmd.Fill(ds, "membri")    => tutto quest'ultimo pezzo dovresti metterlo in un blocco try catch finally    
        End Sub
    End Class
        Private Sub reindirizza(ByVal sender As System.Object, ByVal e As System.EventArgs)  
         Handles Button1.Click
              Response.redirect("indirizzo", true) => perchè insisti nel passare come primo argomento di Redirect "indirizzo". Devi passare la varibile indirizzo:
    If indirizzo.Length > 0 Then
        Response.Redirect(indirizzo, True)
    End If
        End Sub
             Cn.Open()
     </script> => cosa c'entra sto tag. Devi separare il codice dal markup
    ...ti ho segnalato velocemnete i punti che devi rivedere...oltre alle prime due cose che ti ho detto(vedere su) fondamentale è la guida msdn

  2. #12
    ubimaior non è in linea Scolaretto
    Post
    74
    Io uso webmatrix, non Visual Studio, non so se cambia qualcosa. Non ho capito perché non devo mettere il tag <script>. Comunque faccio un pò di prove poi ti faccio sapere. Sei stato molto gentile, grazie

  3. #13
    L'avatar di SignIn
    SignIn non è in linea Scribacchino
    Luogo
    Milano
    Post
    1,026
    Quote Originariamente inviato da ubimaior Visualizza il messaggio
    Io uso webmatrix, non Visual Studio
    ...ah adesso mi è più chiaro ...comunque ti consiglio di scaricare la versione free di VS(la express)

    Quote Originariamente inviato da ubimaior Visualizza il messaggio
    Sei stato molto gentile, grazie
    prego
    Ultima modifica di SignIn; 09-02-2008 22:28 

  4. #14
    ubimaior non è in linea Scolaretto
    Post
    74
    Allora, c'è qualcosa che non va. Riesco a recuperare i dati dai form (e questo per me è già un bel passo avanti, credimi).
    Però come tento di impostare la connessione mi da errore.
    Recupero la stringa di connessione* e il nick e faccio:
    * il database è un una sotto cartella: root/prove/dati/ e io ho scritto: "/dati/" è giusto o devo scrivere qualcosa del tipo: "../prove/dati/" ?

    Dim Connessione As New OleDbConnection(Percorso)

    Dim Cmd As New OleDbDataAdapter ("select Url From tabella Where Codice = Nick, Connessione)

    Dove Nick è ciò che ha scritto nel secondo textbox

    Tutto dentro la stessa SubRoutine che viene attivata dal click sul pulsante.

    Cosa sbaglio?

  5. #15
    L'avatar di SignIn
    SignIn non è in linea Scribacchino
    Luogo
    Milano
    Post
    1,026
    Quote Originariamente inviato da ubimaior Visualizza il messaggio
    Dim Cmd As New OleDbDataAdapter ("select Url From tabella Where Codice = Nick, Connessione)
    ...mannaggia a te ubi...devi iniziare a fare esercizi su concatenazioni ecc prima di passare a connessioni su db ....
    se nick è una variabile il tuo statemente deve essere così composto:
    "select Url From tabella Where Codice = '" + Nick + "'"
    Per quanto riguarda il percorso dipende tutto dalla struttura delle tue cartelle in modo particolare dalla cartella in cui si trova il db(se si trova in una sottocartella rispetto alla tua pagina, ecc)....

  6. #16
    ubimaior non è in linea Scolaretto
    Post
    74
    Lo so, devo fare molto esercizio, ho comprato un "mattone" da 45€ e sto studiando ma questa pagina devo riuscire a farla subito, per il resto ho il tempo di studiare e fare pratica.

    Ora continuo a fare i miei tentativi.
    Grazie per la pazienza.

  7. #17
    ubimaior non è in linea Scolaretto
    Post
    74
    Allora, eccomi ancora qua, alle prese con i miei tentativi.
    Recuperando i dati dai form riesco ad ottenere (in 2 label) sia il codice dell' utente, sia il nicknome del database, che unisco alla stringa di connessione in questo modo:
    Dim Database As String = textbox1.text +".mdb"
    Dim Percorso as string= "/miosito.it/prove/dati/" + Database
    Dim ConnString As String = "Provider= Microsoft.Jet.OLEDB.4.0;" & _
    "Data Source = '"+ Percorso +"'"
    E sembra andare tutto bene: le label visualizzano il nick ed il percorso completo.
    Aggiungo una riga (sto cercando di avanzare un poco alla volta per capire dove sbaglio):
    Dim Connessione As OleDbConnection (Connstring) e mi da errore.
    Mi sai dire perché?

  8. #18
    ubimaior non è in linea Scolaretto
    Post
    74
    Sub Page_Load (Obj As Object, E As EventArgs)


    Dim indirizzo as string
    if Not Page.IsPostBack then
    indirizzo = String.Empty
    End if
    End sub

    Sub Reindirizza(Obj As Object, E As EventArgs)
    ' L'utente inserisce i 2 codici richiesti
    Dim Database As String = textbox1.text +".mdb"
    Dim Nick As String = textbox2.text
    Dim Indirizzo As String
    'Determino il percorso del database e la stringa di connessione
    Dim Percorso as string= "miosito/prove/dati/" + Database
    Dim ConnString As String = "Provider= Microsoft.Jet.OLEDB.4.0;" & _
    "Data Source =" + Percorso

    'Imposto la connessione
    Dim Connessione As New OleDbConnection _
    ("Provider=Microsoft.Jet.OLEDB.4.0; " & _
    "Data Source=G:\sito itsworth\dati\aa1.mdb")

    ' Mi serve solo l'URL relativo al nick inserito nel textbox2
    Dim Comando As OleDbCommand _
    ("select Url From tabella Where Codice = '" + Nick + "'" , Connessione)

    'Creo il DataReader, apro la connessione e lo "riempio"
    Dim Reader As OleDbDataReader
    Connessione.Open
    Reader = Comando.ExecuteReader

    'Se il nick c'è dai un valore alla variabile indirizzo e reindirizza, altrimenti visualizza un messaggio di errore
    If Reader.Read Then
    Indirizzo = Reader.GetString
    Response.Redirect(Indirizzo)
    Else
    Response.Write("Codice immesso errato, riprovare")
    End if
    Connessione.Close


    End Sub


    Com'è? Fa proprio schifo o ci sono vicino?


    Ovviamente nella parte "HTML" ci sono 2 form ed un pulsante che richiama la suoroutine "reindiriza"

  9. #19
    L'avatar di SignIn
    SignIn non è in linea Scribacchino
    Luogo
    Milano
    Post
    1,026
    .partendo dal pressuposto che il tutto si può notevolmente migliorare la domanda è: il tutto funziona?

  10. #20
    ubimaior non è in linea Scolaretto
    Post
    74
    Purtroppo no, continua a darmi errore.

    Possibile che dipenda dal percorso del database?

+ Rispondi al Thread
Pagina 2 di 4 primaprima 1234 ultimoultimo

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi