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.
Community
Ultimi messaggi
UTENTI ONLINE
    In primo piano

    I più letti di oggi

    Media
    In evidenza
    MISC