[VB2008]Problema con query piuttosto semplice

di il
8 risposte

[VB2008]Problema con query piuttosto semplice

Ciao a tutti,

stò muovendo i miei primi passi con LINQ e mi trovo in questa situazione, ho questa query

Dim ragionesociale As String
Dim dpdc As New dominoproDataContext
ragionesociale = txtRagioneSociale.Text
Label1.Text = txtRagioneSociale.Text
Try
Dim risultato = From tblCliente In dpdc.tblCliente Where tblCliente.ragione_sociale = ragionesociale Select tblCliente
TblClienteDataGridView.DataSource = risultato
Catch ex As Exception
MsgBox("ERRORE! E' necessario inserire almeno un codice")
End Try

non c'è verso di far vedere i dati nel relativo datagridview. Ho provato ad aggiungere una label per vedere se il dato veniva letto e infatti il testo della label cambia, però mi va direttamente in eccezione. Ho provato a togliere il try e mi dice

SQL Server non gestisce il confronto dei tipi di dati NText, Text, Xml o Image.

Come posso risolvere il problema?

8 Risposte

  • Re: [VB2008]Problema con query piuttosto semplice

    Ciao,
    hai provato anche ad usare il tools grafico per assegnare la query?
    ciao
  • Re: [VB2008]Problema con query piuttosto semplice

    No, sinceramente non so come si fa ad usare il tool grafico. Mi sapresti dire come si fa?
  • Re: [VB2008]Problema con query piuttosto semplice

    Per attivarlo basta k premi nell'angolo in alto a destra sulla "freccina che ti compare" e selezioni un'origine dati.....
  • Re: [VB2008]Problema con query piuttosto semplice

    Ma per fare una semplice ricerca di un testo come si fa? Mi basta sapere come fare la query che, data una stringa ad esempio:

    Select from utente
    where nome = txtnome.text
    order by utente.nome

    e sul datagrid estrapola i dati relativi a quell'utente.
  • Re: [VB2008]Problema con query piuttosto semplice

    Niente? nessuno?
  • Re: [VB2008]Problema con query piuttosto semplice

    Basta k fai la query normalissima....
    puoi usare anke la klasse smo di sql

    una volta fatta la query es:

    server mioserver = new server (nomeserver);
    database miodatabase = new database (nomserver,nomedatabase);

    dataset miodataset = database.executequery( testo query) ; //torna un dataset con i valori

    miagriglia.datasourse = miodataset;

    dovrebbe andare a memoria se non sbaglio.....
    prova a vedere se ti va altrimenti lo faccio meglio nell'ambiente di sviluppo....e ti mando il codice esatto
    oppure contattami in privato e mandami il progetto k te lo controllo....
    ciao


    ps.non fare caso ad errori di battitura o i nomi dei metodi se non sono esatti a memoria non rikordo bn......
    eh si....si invekkia....
  • Re: [VB2008]Problema con query piuttosto semplice

    Scusa ma mi trovo spiazzato, in quanto sono piuttosto inesperto. Faccio un rapido riassunto:

    - database sqlserver express generato direttamente in visual basic express 2008
    - classe linq: dominopro.dbml
    - database: dominopro.mdf
    - tabella: tblClienti
    - form: frmClienti
    - elementi nel form: 1 textbox, 1 datagrid, 1 pulsante
    - textbox: txtRagioneSociale
    - datagrid: TblClienteDataGridView
    - pulsante: btnCercaRagioneSociale

    Codice attualmente nel pulsante:
    
            Dim ragionesociale As String
            Dim dpdc As New dominoproDataContext
            ragionesociale = txtRagioneSociale.Text
            Try
                Dim risultato = From tblCliente In dpdc.tblCliente Where tblCliente.ragione_sociale = ragionesociale Select tblCliente
                TblClienteDataGridView.DataSource = risultato
                txtRagioneSociale.Clear()
            Catch ex As Exception
                MsgBox("ERRORE!")
            End Try
    
    Come faccio ad applicare il tuo suggerimento al codice?
  • Re: [VB2008]Problema con query piuttosto semplice

    Ho fatto una prova. Ho dato alla variabile lo stesso tipo di dati che indicava VBE2008:
     Dim risultato As System.Linq.IQueryable(Of DominoPRO.tblCliente) 
    ho assegnato alla variabile risultato il testo contenuto nel textbox per vedere se almeno la lettura c'era:
     ragionesociale = txtRagioneSociale.Text
    ho assegnato il valore della variabile al testo della label
     Label1.Text = ragionesociale
    e ora ho questo codice:
    Private Sub btnCercaRagioneSociale_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCercaRagioneSociale.Click
            Dim dpdc As New dominoproDataContext
            Dim risultato As System.Linq.IQueryable(Of DominoPRO.tblCliente)
            Dim ragionesociale As String
            Try
                ragionesociale = txtRagioneSociale.Text
                Label1.Text = ragionesociale
                risultato = From tblCliente In dpdc.tblCliente Where tblCliente.ragione_sociale = ragionesociale Select tblCliente
                TblClienteDataGridView.DataSource = risultato
                txtRagioneSociale.Clear()
            Catch ex As Exception
            End Try
        End Sub
    Continua a non estrapolare il cliente che io indico nella textbox, ma almeno non da più errore. Significa che c'è un problema direttamente qua dentro. Ma dove?

Devi accedere o registrarti per scrivere nel forum
8 risposte