Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2002
    Messaggi
    1,183

    SCUSATEMI....MA HO DAVVERO BISOGNO DI UNA MANO

    Ciao a tutti,
    vi chiedo scusa se sono ripetitivo, ma necessito d'una mano dai più bravi in quanto è da ieri che mi sto scervellando.

    codice:
    dim parola_da_ricercare as string="va"
    
    	dim objcmdr as new oledbcommand ("select * from messaggio where risposta like '%"& parola_da_ricercare &"%' ", objconn)
    
    	dim readr as oledbdatareader
    	
    	objconn.open
    	readr=objcmdr.executereader
    	
    	dim a as integer
    	while readr.read
    	'per stampare un campo numerico devo mettere getint32
    	a=(readr.getint32(4))'qui prendo i valori da un campo numerico
    	
    	end while
    	readr.close
    
    	objcmdr.connection.close()
    	
    
    'adesso vorrei selezionare tutti i record con gli id uguali ai valori
    'selezionati prima e dati alla variabile a
    'ma a questo punto la variabile a contiene solo l'ultimo
    'io li vorrei tutti
    
    	dim objcmd as new oledbdataadapter ("select * from messaggio where id = "& a &" ", objconn)
    	
    	dim ds as dataset=new dataset()
    	objcmd.fill (ds,"messaggio")
    		
    	datagrid1.datasource=ds.tables("messaggio").defaultview
    	datagrid1.databind



    IL PROBLEMA è che quando gli dico

    codice:
     
    dim objcmd as new oledbdataadapter ("select * from messaggio where id = "& a &" ", objconn)

    lui mi seleziona solo l'ultimo elemento della variabile a


    Grazie a tutti per l'aiuto e la disponinilità
    victor
    ----------------------

  2. #2
    è ovvio che la var a ti contenga solo l'ultimo record, in quanto tu con quel cliclo le riassegni continuamente il valore. Per avere tutti i risutati potresti ad esempio concatenarli in una stringa, separandoli con una virgola (o quel che vuoi tu) e poi splittando la stringa li separi, del tipo
    codice:
    dim a as string
    	while readr.read
    	a += readr.getint32(4) &","
    	end while
    oppure usando un'array
    "...non è detto che sia tardi se non guardi che ora è..."

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2002
    Messaggi
    1,183

    intanto grazie per la risposta

    poi, visto che è da ieri che ci provo, mi faresti vedere come faresti tu nel codice che ti ho postato...

    la cosa che a me interessa è che qui

    dim objcmd as new oledbdataadapter ("select * from messaggio where id = "& a &" ", objconn)


    vengano selezionati tutti i valori estratti qui
    a=(readr.getint32(4))

    grazie mille
    victor
    ----------------------

  4. #4
    Dato che della mia risposta dell'altro thtread non ti fidavi adesso mi sono fatto anche l'esempio:

    codice:
    Private Sub test()
            Dim cnn As New SqlConnection("Persist Security Info=True;User ID=sa;Initial Catalog=Northwind;Data Source=localhost")
            Dim cmd As New SqlCommand("SELECT * FROM Products", cnn)
            Dim r As SqlDataReader
            cnn.Open()
            r = cmd.ExecuteReader()
            Dim s As String
            Do While (r.Read())
                s = s & "," & r.GetInt32(0).ToString()
            Loop
            cnn.Close()
            Response.Write(s.Substring(1, s.Length - 1))
    
    'e poi sarà
    'dim objcmd as new oledbdataadapter ("select * from messaggio where id = "& s &" ", objconn)
    
    
    End Sub

    Ciao
    k
    Kalman

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2002
    Messaggi
    1,183

    ciao Kalman

    scusami ma non è vero che non mi sono fidato di te. E' che
    dopo decine di tentativi, anche e soprattutto grazie al tuo aiuto di ieri, non ho comunque risolto niente.

    Adesso ho riadattato il tuo codice....sembrerebbe che qualcosa sembra funzionare.
    Ecco come ho riadattato il tuo codice
    però mi da questo errore
    Errore di sintassi (operatore mancante) nell'espressione della query 'id = ,628,629,631'.

    Ti posto il codice e naturalmente grazie mille...spero di farcela oggi

    codice:
    dim parola_da_ricercare as string="va"
    
    	Dim cmd As New oledbcommand("SELECT * FROM messaggio where risposta like '%"& parola_da_ricercare  &"%' ", objconn)
    
    	
    Dim r As oledbdatareader
            objconn.Open()
            r = cmd.ExecuteReader()
            Dim s As String
            Do While (r.Read())
                s = s & "," & r.GetInt32(0).ToString()
            Loop
            objconn.Close()
            Response.Write(s.Substring(1, s.Length - 1))
    
    
    	
    	dim objcmd as new oledbdataadapter ("select * from messaggio where id = "& s &" ", objconn)
    	
    	dim ds as dataset=new dataset()
    	objcmd.fill (ds,"messaggio")
    		
    	datagrid1.datasource=ds.tables("messaggio").defaultview
    	datagrid1.databind
    victor
    ----------------------

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    4,127
    victor io ti darei volentieri una mano però
    1. iei ti avevo già proposto la mia tesi sul fatto ke è un errore nell'sql .. secondo me è formalmente scorretta la sintassi ke usi..
    ESEMPIO SUL DB NORTHWIND:
    SELECT * FROM Northwind.dbo.Categories WHERE categoryID = 1 OR categoryID = 2
    questa è secondo me la sintassi corretta..
    2. BBAAASSSTTTAAA aprire 800 messaggi sullo stesso motivo!

  7. #7
    Utente di HTML.it
    Registrato dal
    Jun 2002
    Messaggi
    1,183

    scusami se mi permetto...

    ciao sms,
    nonostante io abbia molto da imparare da te, non comprendo come mai dici che quello che io propongo è formalmente scorretto.
    Sto solo chiedendo di selezionare dei record prendendo come riferimento degli id diversi.

    codice:
     
    dim objcmd as new oledbdataadapter ("select * from messaggio where id = "& s &" ", objconn)
    Che provengono da questa selezione

    codice:
    Dim cmd As New oledbcommand("SELECT * FROM messaggio where risposta like '%"& parola_da_ricercare  &"%' ", objconn)
    
    	
    Dim r As oledbdatareader
            objconn.Open()
            r = cmd.ExecuteReader()
            Dim s As String
            Do While (r.Read())
                s = s & "," & r.GetInt32(0).ToString()
            Loop
            objconn.Close()
    In fondo, grazie all'aiuto di Kalman, penso di esserci quasi vicino
    se non fosse per questo errore

    codice:
    Errore di sintassi (operatore mancante) nell'espressione della query 'id = ,627,627,630'.
    Comunque grazie lo stesso
    victor
    ----------------------

  8. #8
    Devi togliere la prima virgola e poi in sql mettere IN con le ()!
    s = s.Substring(1, s.Length - 1))
    dim objcmd as new oledbdataadapter ("select * from messaggio where id in("& s &")", objconn)


    Ciao
    K
    Kalman

  9. #9
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    4,127
    tu non comprendi xkè non vuoi comprendere
    prova a fare come ti dico io...

    codice:
    Dim r As oledbdatareader
            objconn.Open()
            r = cmd.ExecuteReader()
            Dim s As String
            Do While (r.Read())
                s += "OR [ID]= " & r.GetInt32(0).ToString()
            Loop
            objconn.Close()
    	dim objcmd as new oledbdataadapter ("select * from messaggio where "& s, objconn)
    oppure, molto meglio, puoi utilizzare
    WHERE ID IN (3,4,5,6,7,8,9)..
    e per cui puoi utilizzare il tuo codice..

    codice:
    Dim cmd As New oledbcommand("SELECT * FROM messaggio where risposta like '%"& parola_da_ricercare  &"%' ", objconn)
    
    	
    Dim r As oledbdatareader
            objconn.Open()
            r = cmd.ExecuteReader()
            Dim s As String
            Do While (r.Read())
                s += "," & r.GetInt32(0).ToString()
            Loop
            objconn.Close()
    dim objcmd as new oledbdataadapter ("select * from messaggio where [ID] IN ("& s &")", objconn)

  10. #10
    Utente di HTML.it
    Registrato dal
    Jun 2002
    Messaggi
    1,183

    forse ci sono

    con questo
    codice:
    dim parola_da_ricercare as string="va"
    
    	Dim cmd As New oledbcommand("SELECT * FROM messaggio where risposta like '%"& parola_da_ricercare  &"%' ", objconn)
    
    	
    Dim r As oledbdatareader
            objconn.Open()
            r = cmd.ExecuteReader()
            Dim s As String
            Do While (r.Read())
               ' s = s & "," & r.GetInt32(4).ToString()
    			 s += "," & r.GetInt32(4).ToString()
     
            Loop
            objconn.Close()
            'Response.Write(s.Substring(1, s.Length - 1))
    Response.Write(s)
    	
    	dim objcmd as new oledbdataadapter ("select * from messaggio where [ID] IN ("& s &")",  objconn)
    	
    	dim ds as dataset=new dataset()
    	objcmd.fill (ds,"messaggio")
    		
    	datagrid1.datasource=ds.tables("messaggio").defaultview
    	datagrid1.databind

    viene fuori questo errore

    codice:
    Errore di sintassi (operatore mancante) nell'espressione della query '[ID] IN (,627,627,630)'.

    col codice di Kalman mi sa che ci siamo proprio


    codice:
    dim parola_da_ricercare as string="va"
    
    	Dim cmd As New oledbcommand("SELECT * FROM messaggio where risposta like '%"& parola_da_ricercare  &"%' ", objconn)
    
    	
    Dim r As oledbdatareader
            objconn.Open()
            r = cmd.ExecuteReader()
            Dim s As String
            Do While (r.Read())
                s = s & "," & r.GetInt32(4).ToString()
    			s = s.Substring(1, s.Length - 1)
            Loop
            objconn.Close()
            Response.Write(s.Substring(1, s.Length - 1))
    
    
    	
    	dim objcmd as new oledbdataadapter ("select * from messaggio where id in ("& s &") ", objconn)
    	
    	dim ds as dataset=new dataset()
    	objcmd.fill (ds,"messaggio")
    		
    	datagrid1.datasource=ds.tables("messaggio").defaultview
    	datagrid1.databind


    Grazie a tutti
    adesso provo
    victor
    ----------------------

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.