Uso della select

martedì 30 ottobre 2007 - 10.12

donatokolas Profilo | Junior Member

Ciao a tutti
spero possiate aiutarmi anke qst volta.
Devo fare un select dal mio DB locale e questa select deve rispettare la condizione secondo la quale il campo cod_preventivo deve essere uguale al testo di una label presente sulla Form.
Io ho fatto così ma mi da errore (naturalmente ) :
m_cnADONewConnection.ConnectionString =
@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Temp\myDB.mdb";
m_daDataAdapter = new OleDbDataAdapter(
"Select * from Posizioni where cod_preventivo=label27.Text ", m_cnADONewConnection);
OleDbCommandBuilder m_cbCommandBuilder =
new OleDbCommandBuilder(m_daDataAdapter);
m_daDataAdapter.Fill(posizioni);
this.MostraRecordCorrente();
L'errore è : Nessun valore specificato per alcuni parametri necessari.
Dove sbaglio?

SSUPERPIPPO Profilo | Guru


L'errore è nella SELECT che deve risultare dalla concatenazione della stringa di select con il valore conuto nella label.

Se il campo è numerico:

"Select * from Posizioni where cod_preventivo=" & label27.Text

Se il campo è testo devi aggiungere gli apici:

"Select * from Posizioni where cod_preventivo='" & label27.Text & "'"

Ciao

Alessandro

P.S.: Se ti può interessare sul mio blog (link qui sotto), trovi una classe per la gestione degli accessi al database semplificata.

http://blogs.dotnethell.it/alebadalin

donatokolas Profilo | Junior Member

Ciao Alex!

Ok! Adesso però mi da un'altro tipo di errore : Errore di sintassi (operatore mancante) nell'espressione della query 'cod_preventivo=07J_0000005'.

Come mai?

StefanoLep Profilo | Senior Member

Se il campo da testare è una stringa va racchiuso tra apici singoli -...WHERE cod_preventivo = '07J_0000005'
Se si tratta di un numero gli apici non servono


Solo chi fa sbaglia :-)

donatokolas Profilo | Junior Member

Ciao
il campo da testare è il contenuto del testo di una label quindi essendo un campo nn lo posso racchiudere tra apici (correggimi se sbaglio ).

Nell'errore ke ho postato prima il codice 07J_0000005 è in effetti il testo della label ke in quel momento sto confrontando.

StefanoLep Profilo | Senior Member

Secondo me dovresti modificare

"Select * from Posizioni where cod_preventivo=" & label27.Text
con
"Select * from Posizioni where cod_preventivo='" & label27.Text & "'"

cioè con gli apici, poi se vuoi fare una cosa più pulita invece di usare il concatenamento di stringhe puoi usare i parametri dell'oggetto command così non ti devi preoccupare di apici singoli e doppi :-)


Solo chi fa sbaglia :-)

alextyx Profilo | Expert

"Select * from Posizioni where cod_preventivo=label27.Text "

dovrebbe diventare:

"Select * from Posizioni where cod_preventivo='" & label27.Text & "'"

Spero di aver scritto bene, ma non ho la IDE ad aiutarmi!

P.S.: Oooops... cross posting

donatokolas Profilo | Junior Member

Adesso si ke funziona!!!

Grazie a tutti
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