13 messaggi dal 16 gennaio 2008
Ciao, questo è il mio primo post( anche perchè è da poco che programmo in ASP.NET e c#) se non è questo il posto giusto per l'aiuto di cui ho bisogno spostate pure la discussione, ho cercato per un po' ma non ho trovato niente che avesse a che fare con il mio problema, che spiegherò ora.

Uso un DB su SQL server 2005 express edition.
Ho delle tabelle fatte così(non metto i nomi giusti tanto è il succo che conta)

TABELLA_1(Id_T1, campo1_T1, campo2_T1)

TABELLA_2(Id_T2, campo1_T2, campo2_T2)

dove Id_T1 e Id_T2 sono PK di tipo contatore(aumentano automaticamente di 1 a ogni inserimento)
campo1_T2 è FK riferito a Id_T1
campo1_T1 è dichiarato unico
-----------------------------------------------------
Questo e il codice che uso per effettuare le query

//Stringa con i parametri di connessione
string strConn = " server=...\\SQLEXPRESS;Initial catalog=[nome del DB];Integrated Security=True ";

string sqlCmd = "SELECT ... FROM ... WHERE ...";

SqlConnection Conn = new SqlConnection(strConn);
SqlCommand Cmd = new SqlCommand(sqlCmd, Conn);
Cmd.Connection.Open();
Cmd.ExecuteReader(CommandBehavior.CloseConnection | CommandBehavior.SingleResult);
GridView1.DataBind();
Cmd.Connection.Close();
---------------------------------------
Io vorrei riuscire a capire come posso fare a conservare il risutato di una query in una variabile, esempio:

Select Id_T1 from TABELLA_1 where campo1_T1 = 'xxx' e la assegno ad esempio alla variabile Id_Tabella1

Il risutalto sarà un Id_T1 unico, che mi servirà per fare una insert in TABELLA_2

insert into TABELLA_2 values(Id_T1,...)
potresti anche solo semplicemente usare una query nidificata

ciao marco

Chi parla senza modestia troverà difficile rendere buone le proprie parole.
Confucio

http://nostromo.spaces.live.com/default.aspx
13 messaggi dal 16 gennaio 2008
Grazie del suggerimento, ho fatto come hai detto.
Anche se cosi la query di inserimento è un po' complicata, comunque più avanti proverò a scoprire se si può fare come avevo in mente e condividerò la mia scoperta, in questo modo il codice penso sarà più pulito e ordinato.
Grazie ancora ciao e buona giornata!
di nulla

buona ricerca

ciao marco

Chi parla senza modestia troverà difficile rendere buone le proprie parole.
Confucio

http://nostromo.spaces.live.com/default.aspx
13 messaggi dal 16 gennaio 2008
Ce l'ho fatta!
Per chi interessa ecco come:
        string dato;
        SqlConnection Conn = new SqlConnection("parametri di connessione");
        SqlCommand Cmd = new SqlCommand("select * from tabella ...", Conn);
        Cmd.Connection.Open();
        dato = Cmd.ExecuteScalar().ToString();
        Cmd.Connection.Close();

ExecuteScalar restitusce il primo valore selezionato, se c'è nè solo uno restituisce solo quello.
Per maggiori info:
http://msdn2.microsoft.com/it-it/library/system.data.sqlclient.sqlcommand.executescalar(VS.80).aspx


e se si vogliono salvare tutti i valori di una query che da più risultati?
cosi:
        int i = 0;
        string[] array1 new string[xxx];
        string[] array2 new string[xxx];
        SqlConnection Conn = new SqlConnection("stringa connessione");
        SqlCommand Cmd = new SqlCommand("select campo1, campo2 from..", Conn);
        Conn.Open();
        SqlDataReader reader = command.ExecuteReader(); 
        while (reader.Read())
        {
         array1[i] = reader.GetString(0);//salva i campo1
         array2[i] = reader.GetString(1)//salva i campo2
         i = i+1;
        } 
        reader.Close();
        conn.Close();

Per questo ho preso spunto da qui:
http://easydotnet.it/Contenuti/Articolo.aspx?Id=6

Ciao a tutti e grazie dell'attenzione!!!
3 messaggi dal 29 gennaio 2012
fantastico!!!

grazie per aver postato la tua soluzione
mi è stata molto utile

CONDIVIDERE SEMPRE!!!

carl_

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.