Ciao, con il codice che segue, devo inserire un record in una tabella, poi recuperare il campo id dell'utlimo record inserito e inserire un altro record in un'altra tabella dove inserirò anche il valore del campo id appena recuperato.
Il problema è che nel secondo inserimento, mi inserisce tanti record quanti ce ne sono nella tabella +1. Il problema dovrebbe stare nel ciclo while. Più precisamente credo che il problema stia nelle aperture delle connessioni.. ma ho provato e riprovato, niente non riesco a farlo funzionare a dovere Help:
codice:if (IsPostBack) { string giorno = gg.SelectedItem.Value; string mese = mm.SelectedItem.Value; string anno = aa.Text; string datanascita = giorno +"/"+mese+"/"+anno; string connstring = "Database=maximotogest;Data Source=localhost;User Id=root;Password="; string queryCliente="INSERT INTO clienti(Nome,Cognome,Birth_date,Luogo_nascita,Res_city,Address,Cod_fisc,Partita_iva,Num_tel,Num_fax,Note_cliente) VALUES('"+cnome.Text+"' ,'"+ ccognome.Text +"','"+ datanascita + "','"+clnascita.Text+"','"+ccres.Text+"','"+cvia.Text+"','"+ccodfisc.Text+"','"+cpiva.Text+"','"+cntel.Text+"','"+cnfax.Text+"','"+cnote.Text+"')"; //LAST_INSERT_ID() E' UNA FUNZIONE INTRINSECA DI MYSQL QUINDI NON STANDARD string qselectionlastid="SELECT LAST_INSERT_ID() FROM clienti"; //inserisco il record per il cliente MySqlConnection conn = new MySqlConnection(connstring); MySqlCommand cmdcliente = new MySqlCommand(queryCliente); conn.Open(); cmdcliente.Connection = conn; cmdcliente.ExecuteNonQuery(); cmdcliente.Connection.Close(); //recupero l'ultimo record inserito e inserisco il ciclomotore con l'id recuperato MySqlConnection readerconn = new MySqlConnection(connstring); MySqlCommand cmdselectlastid = new MySqlCommand(qselectionlastid,readerconn); MySqlDataReader reader; readerconn.Open(); reader=cmdselectlastid.ExecuteReader(); while(reader.Read()) { uint Id = (uint) reader.GetInt32(0); string queryCiclomotore = "INSERT INTO ciclomotori(Cliente,Tipo_veicolo,Colore,Marca,Modello,Cilindrata,Cod_telaio,Targa,Note_ciclomotore) VALUES("+Id+",'"+mtveicolo.Text+"','"+mcolore.Text+"','"+mmarca.Text+"','"+mmodello.Text+"',"+mcilind.Text+",'"+mtelaio.Text+"','"+mtarga.Text+"','"+mnote.Text+"')"; MySqlConnection myconn = new MySqlConnection(connstring); MySqlCommand cmdciclomotore = new MySqlCommand(queryCiclomotore); cmdciclomotore.Connection = myconn; myconn.Open(); cmdciclomotore.ExecuteNonQuery(); cmdciclomotore.Connection.Close(); } reader.Close(); readerconn.Close(); }


:
Rispondi quotando
agrrrrrrr wou wou ahgrrrrrr
