PDA

View Full Version : [C# E SqlConnection]


stella_650
28-06-2007, 18:45
Ciao ragazzi,
spero proprio che qualcuno riesca ad aiutarmi...
Sn alle prese con un inserimento dati all'interno di un Database.mdf e ho un problema legato alla connessione. Premetto di utilizzare Sql Express 2005 e C# come linguaggio di programmazione in Visual Studio 2005 Express.
Cio' che vorrei fare è inserire, al seguito di un evento button_click, in un database vuoto, i campi prelevati da alcune TextBox opportunamente riempite. Il tutto è espresso tramite il seguente codice...

protected void btnprenota_Click(object sender, EventArgs e)
{

string connstring = @"Data Source=.\\SQLEXPRESS;AttachDbFilename=C:\Documents and Settings\Stella\Desktop\DotNetNuke\App_Data\Database.mdf;Integrated Security=True;User Instance=True;";
SqlConnection conn = new SqlConnection(connstring);
string myInsertQuery = "INSERT INTO Prenotazioni ([ESAME PRENOTATO],[NOME],[COGNOME],[MATRICOLA],[DATA ESAME]) VALUES (@ESAMEPRENOTATO,@NAME,@SURNAME,@MATRIC,@DATAESAME)";
SqlCommand cmd = new SqlCommand(myInsertQuery,conn);
SqlParameter parameter1 = new SqlParameter("@ESAMEPRENOTATO",SqlDbType.Char,50);
parameter1.Value = TextBox2.Text;
cmd.Parameters.Add(parameter1);
SqlParameter parameter2 = new SqlParameter("@NAME",SqlDbType.Char,50);
parameter2.Value = txtName.Text;
cmd.Parameters.Add(parameter2);
SqlParameter parameter3 = new SqlParameter("@SURNAME",SqlDbType.Char,50);
parameter3.Value = txtCognome.Text;
cmd.Parameters.Add(parameter3);
SqlParameter parameter4 = new SqlParameter("@MATRIC",SqlDbType.Char,10);
parameter4.Value = txtMatricola.Text;
cmd.Parameters.Add(parameter4);
SqlParameter parameter5 = new SqlParameter("@DATAESAME",SqlDbType.Char,10);
parameter5.Value = TextBox3.Text;
cmd.Parameters.Add(parameter5);

//instance failure???!!
conn.Open();
//giusto???
cmd.ExecuteNonQuery();
conn.Close();

}
}

Nel momento in cui mando in esecuzione la mia applicazione, al click del prenota sn rimandata sulla riga di codice conn.Open in quanto viene rilevato un errore di tipo Instance Failure....Ma a che cosa è dovuto??

Please...Help me...Grazie

RaouL_BennetH
29-06-2007, 09:41
E' dovuto al fatto che la connessione devi aprirla sempre prima di effettuare qualsiasi tipo di query, altrimenti al momento in cui mandi in esecuzione il sqlcommand, trova la connessione al db chiusa.

Per fare un esempio semplice:



string connString = "tua_connessione";
SqlConnection cn = new SqlConnection(connString);

//ora dobbiamo aprirla:

cn.Open();

//faccio quello che mi serve....

SqlCommand cmd = new SqlCommand(tua_query, cn);


//e poi non devo dimenticare di chiuderla:

cn.Close();

//meglio ancora se il tutto lo gestiamo tramite "try/catch"

try
{
string connString = "tua_connessione";
blablablabla
}
catch(SqlException ex)
{
//gestisci l'eventuale eccezione;
}


P.S: controlla anche che la stringa di connessione sia corretta.

stella_650
29-06-2007, 10:24
Ti ringrazio, dopo aver spostato l'apertura al database, ho controllato anche la stringa di connessione e a livello sintattico andava corretto un particolare che mi mandava in failure l'apertura...ora inserisce i dati nella tabella come vorrei.
Grazie ancora;)