Stored Procedure

lunedì 03 marzo 2008 - 10.29

gae58 Profilo | Senior Member

salve,

Ho trovato questo codice per richiamare una SP da una pagina aspx:
Connessione
COmmand

da questo punto non capisco il perchè del comando
Int32 rowsAffected;
cmd.CommandText = "nome procedura";
cmd.CommandType = CommandType.StoredProcedure;
connessione

E' questo tutto il codice da digitare oppure le istruzioni sono altre?

grazie


Gaetano

Wamba Profilo | Expert

a parte il codice che non hai scritto (apertura conessione e lettura dati) direi che c'è tutto, sempre che tu non debba passare parametri.
-----------------------------------------------------------
Solo chi ha il Caos dentro può generare una stella danzante
Wamba
http://blogs.ugidotnet.org/WamBlog/
http://www.intellimaker.com

alx_81 Profilo | Guru

>salve,
Ciao!
>
>Ho trovato questo codice per richiamare una SP da una pagina
>aspx:
>Connessione
>COmmand
>
>da questo punto non capisco il perchè del comando
>Int32 rowsAffected;
>cmd.CommandText = "nome procedura";
>cmd.CommandType = CommandType.StoredProcedure;
>connessione
>
>E' questo tutto il codice da digitare oppure le istruzioni sono
>altre?
Mancano cose come giustamente ti indica Wamba. C'è anche da capire se devi tornare righe oppure se devi lanciare un comando INSERT/UPDATE/DELETE. In questo caso l'invocazione della stored procedure cambia un pochino ma la preparazione per l'esecuzione è la medesima. Vi è anche da aggiungere che probabilmente avrai bisogno di definire anche dei parametri.
Se ci dai queste informazioni, possiamo provare a scriverti un po' di codice al volo..
>
>grazie
di nulla!
Alx81 =)

http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org

pozzoli.samuele Profilo | Senior Member

Se connessione, intendi la creazione della connessione (la interpreto così...)

Command, intendi la creazione del comando....

Allora, ragazzo... Manca una cosina da ridere. Devi mettere anche un cmd.execute... (scrivilo usando intelisense).

Mi è già capitato di trovare una 3/4 volte il comando preparato, pronto... caricato nella canna del fucile... lili per tirare il grilletto e... uscita dalla sub senza eseguirlo...

gae58 Profilo | Senior Member

ringrazio tutti per le risposte, per il codice della connessione non lhp inserito volontariamente.

Questa stored procedure attualmente mi serve per effettuare un TRUNCATE TABLE, in modo da azzerare anche il progressivo (identity) e successivamente, dopo averne capito il funzionamento per inserire del codice per un ISERT INTO e poi per un UPDATE

Attualmente nel codBehind scrivo:
SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["pippo"].ConnectionString);
// Definisce la Stringa di Svuotamento della Tabella
string Vuota = "DELETE FROM Tabe";
// Effettua il command
SqlCommand cmdTa = new SqlCommand(VuotaTa, conn);
// Apre la Connessione
conn.Open();
cmdTa.ExecuteNonQuery();
conn.Close();


ecco quello che pensavo di scrivere:
SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["pippo"].ConnectionString);
// Effettua il command
SqlCommand cmdTa = new SqlCommand();
cmd.COmmandText = "Vuota";
cmdTa.CommandType = CommandType.StoredProcedure;
cmdTa.Connection = conn;

nella store procedure:
TRUNCATE TABLE Tabe;
GO

dovrebbe funzionare?????

Gaetano

pozzoli.samuele Profilo | Senior Member

>
>ecco quello che pensavo di scrivere:
>SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["pippo"].ConnectionString);
>// Effettua il command
>SqlCommand cmdTa = new SqlCommand();
>cmd.COmmandText = "Vuota";
>cmdTa.CommandType = CommandType.StoredProcedure;
>cmdTa.Connection = conn;
>
>nella store procedure:
>TRUNCATE TABLE Tabe;
>GO
>
>dovrebbe funzionare?????


Certo, se tu eseguissi il command... Come dicevo sopra.

Quindi. Prima cosa è cmdTa.CommandText e non cmd.CommandText. Infine, manca un cmdTa.executeNonQuery... presumo...

Correggetemi se sbaglio che non ho sottomano un editor vb...

gae58 Profilo | Senior Member

ti ringrazio provo e ti faccio sapere

ciao

Gaetano

gae58 Profilo | Senior Member

grazie, funziona.
Un consiglio, siccome devo importare una certa qtà di dati, uso un while.

Attualmente, sia la connessione che l'inseriemnto che la chiusura sono all'interno del while.
Non è più giusto aprire la connessione, richiamare il while, inserire il rekord ed alla fine del while effettuare la chiusura della connessione?

grazie
Gaetano

pozzoli.samuele Profilo | Senior Member



Ma perchè mai dovresti aprire 200 connessioni per inserire 200 record?!?!?

Tira fuori quella connessione e disconnessione, ne guadagnerai immensamente in velocità!

gae58 Profilo | Senior Member

grazie, però nel realizzarlo non mi è chiara un'altra cosa.

Per aprire la connessione fuori dal while, devo definire prima:
il command, poi i parametri e poi posso aprire la connessione.

quindi proseguo col while.

All'interno del ciclo devo definire i controlli per passare i dati esatti ai parametri (però in questo caso li devo (i parametri) definire 2 volte.
Una prima volta prima della connessione ed una seconda volta per valorizzarli, giusto o sbaglio qualcosa?


Gaetano
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