C# - Sql > Creazione di diverse tabelle in un database usando c#

venerdì 08 febbraio 2008 - 16.04

davide89v Profilo | Newbie

Rieccomi qua per un piccolo problemino
ho creto un database e ora lo devo riempire di diverse tabelle
per far si devo modificare il testo dell'sqlcommand di c#, però una volta modificato per rieseguirlo devo prima chiudere il datareader (che praticamente lo uso semplicemente per cambiare testo perchè di fatto non debbo leggere niente)
non ce un modo + semplice per rieseguire un SqlCommand modificando la sua stringa di comando?

ecco qui il codice, tutto stu aprire e chiudere di SQLDATAREADER lo rende troppo confusionario secondo me

SqlConnection connessione = new SqlConnection("Data Source=(local);Initial Catalog=master;Integrated Security=SSPI;");

connessione.Open();

SqlCommand cmd = new SqlCommand("CREATE DATABASE " + textBox1.Text, connessione);

SqlDataReader lettura = cmd.ExecuteReader();
lettura.Close();
connessione.Close();
SqlConnection connessione2 = new SqlConnection ("Data Source=(local);Initial Catalog="+textBox1.Text + comboBox2.Text+";Integrated Security=SSPI;");
connessione2.Open();
SqlCommand cmd2 = new SqlCommand ("CREATE TABLE anagraficaazienda (nome CHAR(50), cognome CHAR(50))", connessione2);
cmd2.ExecuteReader();
connessione2.Close();


ho anche creato un nuovo oggetto sql connnection perchè il primo lo uso per connettermi al master, poi una volta creato il secondo, non so cosa fare per spostare la connessione li con lo stesso sqlconnection

help me help me

alx_81 Profilo | Guru

>non ce un modo + semplice per rieseguire un SqlCommand modificando
>la sua stringa di comando?

>SqlConnection connessione = new SqlConnection("Data Source=(local);Initial Catalog=master;Integrated Security=SSPI;");
>connessione.Open();
>SqlCommand cmd = new SqlCommand("CREATE DATABASE " + textBox1.Text,connessione);

qui puoi usare il metodo ExecuteNonQuery, che serve proprio per lanciare comandi che non ti tornano resultset:

cmd.ExecuteNonQuery();

> connessione.Close();

dopo che hai chiuso la connessione è sufficiente cambiare connectionstring e riaprirla con lo stesso oggetto.

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

>SqlCommand cmd2 = new SqlCommand ("CREATE TABLE anagraficaazienda (nome CHAR(50), cognome CHAR(50))", connessione2);

anche qui utilizza il metodo ExecuteNonQuery e cambia il command text del primo oggetto command, non farne necessariamente un altro.:

cmd.CommandText = "CREATE TABLE anagraficaazienda (nome CHAR(50), cognome CHAR(50))"; cmd.ExecuteNonQuery();

ciao!
Alx81 =)

http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org
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