E possibile usare le query parameter in questo modo??.....

martedì 06 giugno 2006 - 10.24

bluland Profilo | Guru

ecco la query:

select @a from miatabella

command.parameters.add("@a", textbox.text)

inserisco nel textbox: cognome

dove la colonna e' il parametro, lo chiedo perche mi da un errore del tipo:

'System.Data.Common.DbDataRecord' does not contain a property with the name "cognome"

ci sono altri modi??

saluti ENzo

totti240282 Profilo | Guru

perche la query e sbagliata ...dovrebbe essere tipo

select * from tabella where campo=@parametro
C'è solo un capitano !!!!!!

bluland Profilo | Guru

no la query e' esatta solo che il parametro di ingresso voglio che sia la colonna!!

micto27 Profilo | Senior Member

>'System.Data.Common.DbDataRecord' does not contain a property
>with the name "cognome"
>
>ci sono altri modi??

Non puoi usare i parametri in questo modo o meglio utilizzandoli così non ottieni quello che vorresti tu.
Nell'esempio che hai riportato il valore del textbox ("cognome") viene inserito nella query come una costante,
come se tu avessi costruito il seguente commandtext

select 'cognome' from tabella

il datareader restituito dall'esecuzione del command conterrà così una colonna in cui tutti i valori sono
la costante 'cognome'.
L'errore che ti viene restituito dipende dal fatto che il datareader, in base a come viene interpretata
la query [select 'cognome' from tabella] non contiene in effetti nessuna colonna che si chiama
cognome.

Per raggiungere il tuo scopo dovrai quindi costruire in modo programmatico il commandtext del comando:

dim cmd as SqlCommand
cmd.CommandText = "select " + textbox.text + " from tabella where col1 = @p1 and col2 = @p2"
cmd.parapeters.add("@p1",............)
ecc.

Ciao, Michele

bluland Profilo | Guru

si ma in questo modo non posso avere la stessa cosa in termini si sicurezza e controllo che mi danno le @p1 etc_?
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-2023
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5