512 messaggi dal 30 maggio 2002
Ho uno script di questo tipo:

Dim objConn As New SqlConnection(connString)

If vButton1.Text = "Inserisci" Then
Dim objSqlCommand As New SqlCommand("sp_ins", objConn)
Else
Dim objSqlCommand As New SqlCommand("sp_mod", objConn)
End if

objSqlCommand.CommandType = CommandType.StoredProcedure
objSqlCommand.Parameters.Add("@vId", SqlDbType.Real).Value = vId.Text
ecc. ecc.

Però il debug mi dice che le istanze objSqlCommand che seguono l'end if non sono dichiarate. Che istruzione di conrollo posso utilizzare al posto dell'If per evitare di ripetere tutti i parametri comuni alle 2 stored procedure?

Grazie e ciao.

se sapessero cosa penso sarei già morto...
Il tuo problema credo dipenda dall'isolamento nella dichiarazione di una variabile (a differenza di VB6 o VBScript una variabile ha scope limitato al blocco di definizione della stessa). Nel tuo caso la "objSqlCommand" esiste solo nell'If.
Prova così (ti ottimizzo anche un po' il codice):
Dim objConn As New SqlConnection(connString) 

' default: modifica
Dim objSqlCommand As New SqlCommand("sp_mod", objConn)
If vButton1.Text = "Inserisci" Then objSqlCommand.CommandText = "sp_ins"

objSqlCommand.CommandType = CommandType.StoredProcedure 
objSqlCommand.Parameters.Add("@vId", SqlDbType.Real).Value = vId.Text


Spero funzioni ('azz mi sono accorto di non ricordare praticamente nulla di VB.NET!!!  )

Matteo Casati
GURU4.net
32 messaggi dal 26 ottobre 2005
Quello che dice m.casati è giusto.

Ti basta anche fare così:


Dim objSqlCommand As SqlCommand

If vButton1.Text = "Inserisci" Then 
      objSqlCommand = New SqlCommand("sp_ins", objConn) 
Else 
      objSqlCommand = New SqlCommand("sp_mod", objConn) 
End if 



Ciao

Stefano

Se vuoi il massimo... devi essere pronto a pagare il massimo!
Confermo, anche la soluzione di Denton è corretta; io ho voluto togliere l'else perchè imho è più leggibile ma... cambia poco in effetti!

Matteo Casati
GURU4.net

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.