none
VB 2010 FUNZIONE DI RICERCA SQL RRS feed

  • Domanda

  • Salve a tutti, sono nuovo quindi se ho sbagliato sezione o qualcosa del genere ditemelo =) dal titolo si capisce tutto, sono alla prime armi con il VB (ma conosco bene altri linguaggi: c#, c++, pascal ed il mio amatissimo python) e dovendo creare un programma per una libreria devo implementare la funzione di ricerca tramite isbn, 

    riassunto:

    tabella a 5 entrate (prezzo, titolo, autore, isbn, quantita,) ho creato la query select, con param 1 = isbn, adesso non so come inizializzarla e cioe ricercare nel database l input immesso nella txtbox 1 aiutatemiiiiiiiiiiiiiiii 

    martedì 31 gennaio 2012 14:42

Risposte

  • ciao

     

    in genere non si usa più scrivere SQL a mano ma si usa LINQ2SQL o EntityFramework

    dove puoi usare la l'extension method .Where che fa tutto per te ad oggetti usando una lambda

     

    invece se vuoi usare sql

            Dim cn As New SqlClient.SqlConnection("[CONNECTIONSTRING]")
            cn.Open()
            Dim cm As New SqlClient.SqlCommand("SELECT * FROM MYTAB WHERE isbn=@isbn", cn)
            Dim reader = cm.ExecuteReader ' per avere un datareader da scorrere con il .Next
            While reader.Read
                'leggo riga per riga
                Dim temp = reader("isbn")
            End While
            'altrimenti un bel datatable vecchio stampo lo crei dal datareader con
            Dim dt As New DataTable
            dt.Load(reader)
            reader.Close() ' da fare sempre una volta letti i dati necessari
    
    


    Antonio Esposito [MCT, MCPD, MCTS, MCP]
    dotnetlombardia.org | blog | web | @tonyexpo
    Italy
     
    • Proposto come risposta Antonio Esposito mercoledì 1 febbraio 2012 18:17
    • Contrassegnato come risposta nick887 mercoledì 1 febbraio 2012 18:51
    martedì 31 gennaio 2012 16:04
  • Ciao Nick887

    Prova a impostare il codice che c'e' hai, cosi i altri potrano capire meglio dove sei. Ti facio  un esempio, se stai usando il sql compact 3.5

        Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.Click
    
            Dim query As String = ""
            query = "SELECT * FROM EmployeTable Where EmployeeID= '" & TextBox1.Text & "'"
            cmd = New SqlCeCommand(query, connection)
            If connection.State = ConnectionState.Closed Then connection.Open()
            Dim sdr As SqlCeDataReader = cmd.ExecuteReader()
            While sdr.Read = True
                TextBox2.Text = sdr.Item("EmployeeName").ToString
                TextBox3.Text = sdr.Item("EmployeePhone").ToString
            End While
            sdr.Close()
            connection.Close()
        End Sub
    

    Io sto esercitando con un simple esercizio dove database ha solo employeeID, employeeNome e employeeTelephone. Quando premo il buttone6, fa questo

    eseque un commando che chiede se il EmployeeID e uguale al ID che e' nel Textbox1 mi ritorna il nome e il telephono numero. spero che ti aiuta.

     


    Be a good forum member. Make this forum a great place to meet and interact with others around the world.

    • Proposto come risposta Antonio Esposito mercoledì 1 febbraio 2012 18:17
    • Contrassegnato come risposta nick887 mercoledì 1 febbraio 2012 18:51
    mercoledì 1 febbraio 2012 16:45

Tutte le risposte

  • ciao Nick887,

     

    per poterti dare una risposta dovresti aggiungere qualche dettaglio in più, come per esempio in che modo ti connetti al database? che tecnologia stai usando? Entity Framework, Ado.NET ecc...

     

     


    Carmine Punella
    Blog: Link
    martedì 31 gennaio 2012 14:48
  • Ciao Nich887

    Pure io sono alle prime armi con il sql. Questo e' un buon articolo scritto da Carmelo, che mi ha aiutato molto, spero che ti da un punto di partenza

    Thanks to Carmelo Monica
    http://code.msdn.microsoft.com/Esempio-applicazione-dati-70387089

    Seguiro' il tuo post per aiutarmi stesso. Grazie per la domanda e grazie a tutti che rispondono.


    Be a good forum member. Make this forum a great place to meet and interact with others around the world.

    martedì 31 gennaio 2012 15:05
  • prova a vedere questi post che parlano proprio dell'accesso ai dati con .NET http://dotnetlombardia.org/b/remixx/default.aspx
    Carmine Punella
    Blog: Link
    martedì 31 gennaio 2012 15:17
  • ciao

     

    in genere non si usa più scrivere SQL a mano ma si usa LINQ2SQL o EntityFramework

    dove puoi usare la l'extension method .Where che fa tutto per te ad oggetti usando una lambda

     

    invece se vuoi usare sql

            Dim cn As New SqlClient.SqlConnection("[CONNECTIONSTRING]")
            cn.Open()
            Dim cm As New SqlClient.SqlCommand("SELECT * FROM MYTAB WHERE isbn=@isbn", cn)
            Dim reader = cm.ExecuteReader ' per avere un datareader da scorrere con il .Next
            While reader.Read
                'leggo riga per riga
                Dim temp = reader("isbn")
            End While
            'altrimenti un bel datatable vecchio stampo lo crei dal datareader con
            Dim dt As New DataTable
            dt.Load(reader)
            reader.Close() ' da fare sempre una volta letti i dati necessari
    
    


    Antonio Esposito [MCT, MCPD, MCTS, MCP]
    dotnetlombardia.org | blog | web | @tonyexpo
    Italy
     
    • Proposto come risposta Antonio Esposito mercoledì 1 febbraio 2012 18:17
    • Contrassegnato come risposta nick887 mercoledì 1 febbraio 2012 18:51
    martedì 31 gennaio 2012 16:04
  • Ciao nick887,

    Salve a tutti, sono nuovo quindi se ho sbagliato sezione o qualcosa del genere ditemelo =) dal titolo si capisce tutto, sono alla prime armi con il VB (ma conosco bene altri linguaggi: c#, c++, pascal ed il mio amatissimo python) e dovendo creare un programma per una libreria devo implementare la funzione di ricerca tramite isbn,

    riassunto:

    tabella a 5 entrate (prezzo, titolo, autore, isbn, quantita,) ho creato la query select, con param 1 = isbn, adesso non so come inizializzarla e cioe ricercare nel database l input immesso nella txtbox 1 aiutatemiiiiiiiiiiiiiiii

    Ti chiedo oltre gli ottimi consigli il modo in cui hai creato la query , se con la procedura guidata , quidi mediante il controllo TableAdapter o se e stata scritta a mano .

    Fermo restando che l'utilizzo di LinqToDataSet , se e presente tale controllo al progetto , o come consigliato da Antonio sono a mio avviso le scelte più appropriate.

    Ciao , tienici aggiornati sul proseguo.


    martedì 31 gennaio 2012 18:24
  • salve a tutti e grazie mille delle bellissime risposte :thanks: allora,  dettagli ehm....ho creato un database da origini dati e da li ho creato prima la tabella e poi le varie query di insert e delete
    martedì 31 gennaio 2012 21:15
  • Ciao nick887,

    salve a tutti e grazie mille delle bellissime risposte :thanks: allora, dettagli ehm....ho creato un database da origini dati e da li ho creato prima la tabella e poi le varie query di insert e delete

    se dici di aver creato un DataBase , presumo che tu abbia anche creato mediante Wizard , la procedura guidata del Dataset da aggiungere poi successivamente al progetto , in questo modo hai già a disposizione i trè comendi più utilizzati , L'insert, Delete e Update mediante il controllo BindingNavigator alla quale vi sono 3 pulsanti.

    Se per caso non hai eseguito la procedura guidata prova , selezioni "Origini Dati"  "MAIUSC+ALT+D" e segui tutta la procedura , fino alla creazione del DataSet ed i rispettivi comandi che servono a te.

    Ciao.


    martedì 31 gennaio 2012 21:38
  • ho gia creato il dataset e tutto il resto, ho creato 3 query una di insert una delete (con la bindingnavigator correlata ) ed infine una "select" in quale ho impostato come param1 l ISBN, adesso non so come collegare a questa query  input da textbox, aiutooooo, attendo fiducioso, bye ;) 
    mercoledì 1 febbraio 2012 13:15
  • ragazzi, ho tre giorni di tempo per creare sto benedetto programma se no la libreria si rivolgera a gente piu esperta, a me sta cosa mi interesserebbe alquanto, sono giovane (17 anni) programmo da quando ne avevo 12 e questa occasione mi fa parecchio gola (mi pubblicizzerei un po)  grazie mille dell aiuto che mi avete dato e che spero mi darete, fatevi sentire, ogni consiglio e ben accetto, grazieeeeeeeeeeeeeeeeeeeeeeee =) =) =)
    mercoledì 1 febbraio 2012 13:26
  • Ciao Nick887

    Prova a impostare il codice che c'e' hai, cosi i altri potrano capire meglio dove sei. Ti facio  un esempio, se stai usando il sql compact 3.5

        Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.Click
    
            Dim query As String = ""
            query = "SELECT * FROM EmployeTable Where EmployeeID= '" & TextBox1.Text & "'"
            cmd = New SqlCeCommand(query, connection)
            If connection.State = ConnectionState.Closed Then connection.Open()
            Dim sdr As SqlCeDataReader = cmd.ExecuteReader()
            While sdr.Read = True
                TextBox2.Text = sdr.Item("EmployeeName").ToString
                TextBox3.Text = sdr.Item("EmployeePhone").ToString
            End While
            sdr.Close()
            connection.Close()
        End Sub
    

    Io sto esercitando con un simple esercizio dove database ha solo employeeID, employeeNome e employeeTelephone. Quando premo il buttone6, fa questo

    eseque un commando che chiede se il EmployeeID e uguale al ID che e' nel Textbox1 mi ritorna il nome e il telephono numero. spero che ti aiuta.

     


    Be a good forum member. Make this forum a great place to meet and interact with others around the world.

    • Proposto come risposta Antonio Esposito mercoledì 1 febbraio 2012 18:17
    • Contrassegnato come risposta nick887 mercoledì 1 febbraio 2012 18:51
    mercoledì 1 febbraio 2012 16:45
  • funzionaaaaaaaaaaaaaaaaaaaaaaaaaaaa grazie, grazie, grazie, grazie, grazie, quando diventero il futuro bill gates ti predero a lavorare con me ;) :magari: grazie a tutti, mi avete tutti aiutato moltissimo, bellissima community, spero che potro aiutarvi anch io in futuro
    mercoledì 1 febbraio 2012 16:49
  • ciao

    ci fa piacere averti aiutato

    ricorda di segnalare le risposte utili così che chi verrà dopo di noi saprà cosa fare

    a presto

     


    Antonio Esposito [MCT, MCPD, MCTS, MCP]
    dotnetlombardia.org | blog | web | @tonyexpo
    Italy
     
    mercoledì 1 febbraio 2012 18:16