Comando SELECT per estrarre dati da un DataBase

domenica 24 giugno 2007 - 15.49

amartya Profilo | Junior Member

Ciao a tutti,
mi chiedevo se è possibile scrivere i nomi campo come variabili, piuttosto che esplicitarli direttamente nella linea di codice.
Havete qualche idea, e sopratutto qualche consiglio
Grazie
Amartya

bluland Profilo | Guru

>Ciao a tutti,
>mi chiedevo se è possibile scrivere i nomi campo come variabili,
>piuttosto che esplicitarli direttamente nella linea di codice.

>Havete qualche idea, e sopratutto qualche consiglio

Certo che è possibile, lo passi come come una variabile!
se non sbaglio la sintassi dovrebbe essere questa:

es. in VB.net
dim query as string = "SELECT '" & nomecampo & "' FROM Tabella"

dim nomecampo as string = ' gli passi quello che vuoi da un qualsiasi controllo


>Grazie

prego Ciao!
>Amartya

--------------------
Vincenzo PESANTE
System Engineer

amartya Profilo | Junior Member

Provo subito
Grazie ancora
Amartya

amartya Profilo | Junior Member

Ho provato, mi dice che è un comando SQL non valido (anche io sto usando VB.NET).
La mia linea di codice per essere chiari è:

myCMD.CommandText = ("SELECT Veneto, Lombardia, FROM Buyers ")

Vorrei invece selezionare di volta in volta la regione per cui voglio analizzare la clientela inserendo il suo nome direttamente in una textBox nel form, così avrei:

Public Region1 As String

ecc ecc

Region1 = TextRegion1.Text

e quindi
come mi consigliavi:
myCMD.CommandText = ("SELECT" & Region1 & "FROM Buyers ")

Ma niente da fare.
Il bello che ho cercato in lungo ed in largo sul web, e non ho trovato neanche un esempio, eppure non dovrebbe essere questa una problematica poco comune.


bluland Profilo | Guru

>Ho provato, mi dice che è un comando SQL non valido (anche io
>sto usando VB.NET).
>La mia linea di codice per essere chiari è:
>
>myCMD.CommandText = ("SELECT Veneto, Lombardia, FROM Buyers ")
>
>Vorrei invece selezionare di volta in volta la regione per cui
>voglio analizzare la clientela inserendo il suo nome direttamente
>in una textBox nel form, così avrei:
>
>Public Region1 As String
>
>ecc ecc
>
>Region1 = TextRegion1.Text
>
>e quindi
>come mi consigliavi:
>myCMD.CommandText = ("SELECT" & Region1 & "FROM Buyers ")

mancano gli apici o sbaglio??

("SELECT ' " & Region1 & " ' FROM Buyers ")


riprova!
--------------------
Vincenzo PESANTE
System Engineer

amartya Profilo | Junior Member

Intanto ti ringrazio e per l'aiuto, e per il fatto che funziona. C'è però un ultimo problema.
Nel senso che effettivamente mi apre solo quella colonna selezionata tramite la textBox, mi da anche i valori visualizzati in un datagridview, ma al contempo nonostante funzioni mi da un messaggio di errore del tipo :
"Column "Veneto" does not belong to table Region"
Messaggio di errore che francamente non capisco.
Cosa può essere.
Grazie ancora Amartya

amartya Profilo | Junior Member

il messaggiio é:
" Column " Veneto" does not belong to table Buyers"

bluland Profilo | Guru

>il messaggiio é:
>" Column " Veneto" does not belong to table Buyers"


Beh il messaggio è chiaro la colonna Veneto non appartiene alla tabella Buyers.

Allora
1: che db usi?
2: sei sicuro che Veneto sia una colonna di Buyers?? fai attenzione alle minuscole e maiuscole!!

--------------------
Vincenzo PESANTE
System Engineer

amartya Profilo | Junior Member

Ho fatto alcuni controlli, sono sicuro del nome Veneto perchè l'applicazione effettivamente mi richiama Veneto e lo inserisce nel datagrid, quello che invece è strano è che nel datagridview l'applicazione non restituisce alcun valore sotto la colonna Veneto.
Perchè nel database (Access) sotto le colonne regioni ho solo una riga con scritto o uno 0 o un 1. Ebbene mi restituisce come output non la riga dei valori bensì quella con il nome, nel senso che il nome Veneto è l'outpup della mia ricerca e non invece il valore a lui sottostante.
Es. database Access
Veneto Sicilia
0 1

Ok il datagridview mi restituisce il nome campo Veneto e non lo 0.
Ma il motivo è a me oscuro.
Amartya

bluland Profilo | Guru

Facciamo cosi, poiche non ho molto tempo, ti faccio un esempio che per me è funzionante usando vb.net 2005 ed Sql Express

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

verifica un pò!

saluti



--------------------
Vincenzo PESANTE
System Engineer

amartya Profilo | Junior Member

In ogni caso grazie, ancora devo aprire lo script.
Cmq ti farò sapere quando ho risolto, perchè devo risolverlo
A presto Amartya

bluland Profilo | Guru

il codice che ho scritto è testato basati su quello come esempio!

per ora ti saluto!


--------------------
Vincenzo PESANTE
System Engineer

amartya Profilo | Junior Member

Ciao Vincenzo e a tutti,
purtroppo mi ritrovo a scrivere in questo forum, e non vorrei, ma non ho trovato una soluzione al mio problema.
Mi hanno consigliato diverse strade come ad esempio il comando Append di StringBuilder, ma devo ammettere che quella datami da Vincenzo è per me la più intuitiva e semplice, e da capire e da implementare (ammesso che sia possibile ).
Il problema nel caso specifico avendo seguito alla lettera l'esempio di Vincenzo, è che il codice scritto in quel modo interpreta la variabile non come il nome del campo (colonna) bensì come la variabile da cercare all'interno del database, per cui nella datagridview mi restituisce nel campo nome colonna un codice di cui sconosco il significato "Expr1000", e nel capo riga 1 colonna 1 invece mi da come risultato il nome della variabile inserita e riscontrata nel database.
In definitiva il codice non riconosce la variabile come nome campo bensì come una "where clause".

Il codice qualora qualcuno decidesse di dargli attenzione è:

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

Quello postato è effettivamente il codice da me utilizzato, e dove nella TextBox4.Text è inserito il nome "productNumber"

Grazie cmq a tutti
Amartya

bluland Profilo | Guru

Ciao,

come gia detto il codice l'ho testato su db sql server 2005 e funziona perfettamente, non credo che se cambi il db devi cambiare anche il codice,
per cui perche non provi a testare il mio codice alla lettera non usando il command!


saluti
--------------------
Vincenzo PESANTE
System Engineer

amartya Profilo | Junior Member

Proverò.
Cmq grazie
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5