salve ragazzi,
questo è il codice che uso per inserire un nuovo record all'interno di una tabella cittadino:
protected void Button1_Click(object sender, EventArgs e)
{
string tutti = "ins_nuovo_cittadino";
SqlConnection oConn = new SqlConnection(ConfigurationManager.ConnectionStrin gs["dati_generali"].ConnectionString);
try
{
oConn.Open(); //apro la connessione...
}
catch
{
oConn.Close();
oConn.Open(); //apro la connessione...
}
SqlDataAdapter adatt = new SqlDataAdapter(tutti,oConn);
adatt.SelectCommand.CommandType = CommandType.StoredProcedure;
adatt.SelectCommand.Parameters.Add(new SqlParameter("@cod_persona", SqlDbType.Int));
adatt.SelectCommand.Parameters.Add(new SqlParameter("@primo_nome", SqlDbType.VarChar));
//adatt.SelectCommand.Parameters.Add(new SqlParameter("@secondo_nome", SqlDbType.VarChar));
adatt.SelectCommand.Parameters.Add(new SqlParameter("@cognome", SqlDbType.VarChar));
adatt.SelectCommand.Parameters.Add(new SqlParameter("@sesso", SqlDbType.VarChar));
adatt.SelectCommand.Parameters.Add(new SqlParameter("@data_ora_min_nascita", SqlDbType.DateTime));
/* adatt.SelectCommand.Parameters.Add(new SqlParameter("@cod_istat_com_ita_nascita", SqlDbType.Int));
adatt.SelectCommand.Parameters.Add(new SqlParameter("@cod_com_est_nascita", SqlDbType.Int));
adatt.SelectCommand.Parameters.Add(new SqlParameter("@cod_istat_com_ita_prima_iscr", SqlDbType.Int));
adatt.SelectCommand.Parameters.Add(new SqlParameter("@cod_com_est_prima_iscr", SqlDbType.Int));
adatt.SelectCommand.Parameters.Add(new SqlParameter("@cod_padre", SqlDbType.Int));
adatt.SelectCommand.Parameters.Add(new SqlParameter("@cod_madre", SqlDbType.Int));*/
adatt.SelectCommand.Parameters.Add(new SqlParameter("@cod_fiscale", SqlDbType.VarChar));
adatt.SelectCommand.Parameters.Add(new SqlParameter("@prima_cittadinanza", SqlDbType.VarChar));
/* adatt.SelectCommand.Parameters.Add(new SqlParameter("@seconda_cittadinanza", SqlDbType.VarChar));
adatt.SelectCommand.Parameters.Add(new SqlParameter("@nr_atto_iscrizione", SqlDbType.Int));
adatt.SelectCommand.Parameters.Add(new SqlParameter("@parte_i", SqlDbType.Int));
adatt.SelectCommand.Parameters.Add(new SqlParameter("@serie_i", SqlDbType.VarChar));
adatt.SelectCommand.Parameters.Add(new SqlParameter("@ufficio_i", SqlDbType.VarChar));
adatt.SelectCommand.Parameters.Add(new SqlParameter("@volume_i", SqlDbType.Int));
adatt.SelectCommand.Parameters.Add(new SqlParameter("@data_i", SqlDbType.DateTime));
adatt.SelectCommand.Parameters.Add(new SqlParameter("@nr_atto_trascrizione", SqlDbType.Int));
adatt.SelectCommand.Parameters.Add(new SqlParameter("@parte_t", SqlDbType.Int));
adatt.SelectCommand.Parameters.Add(new SqlParameter("@serie_t", SqlDbType.VarChar));
adatt.SelectCommand.Parameters.Add(new SqlParameter("@ufficio_t", SqlDbType.VarChar));
adatt.SelectCommand.Parameters.Add(new SqlParameter("@volume_t", SqlDbType.Int));
adatt.SelectCommand.Parameters.Add(new SqlParameter("@data_t", SqlDbType.DateTime));*/
adatt.SelectCommand.Parameters.Add(new SqlParameter("@cod_condizione", SqlDbType.VarChar));
adatt.SelectCommand.Parameters.Add(new SqlParameter("@cod_titolo_studio", SqlDbType.Int));
adatt.SelectCommand.Parameters.Add(new SqlParameter("@cod_professione", SqlDbType.Int));
adatt.SelectCommand.Parameters.Add(new SqlParameter("@cod_ramo_attivita", SqlDbType.Int));
adatt.SelectCommand.Parameters["@cod_persona"].Value = Server.HtmlEncode(TextBox1.Text);
adatt.SelectCommand.Parameters["@primo_nome"].Value = Server.HtmlEncode(TextBox2.Text);
// adatt.SelectCommand.Parameters["@secondo_nome"].Value = Server.HtmlEncode(TextBox3.Text);
adatt.SelectCommand.Parameters["@cognome"].Value = Server.HtmlEncode(TextBox4.Text);
adatt.SelectCommand.Parameters["@sesso"].Value = Server.HtmlEncode(Label1.Text);
adatt.SelectCommand.Parameters["@data_ora_min_nascita"].Value = Server.HtmlEncode(TextBox5.Text);
/* adatt.SelectCommand.Parameters["@cod_istat_com_ita_nascita"].Value = Server.HtmlEncode(Label2.Text);
adatt.SelectCommand.Parameters["@cod_com_est_nascita"].Value = Server.HtmlEncode(Label3.Text);
adatt.SelectCommand.Parameters["@cod_istat_com_ita_prima_iscr"].Value = Server.HtmlEncode(Label4.Text);
adatt.SelectCommand.Parameters["@cod_com_est_prima_iscr"].Value = Server.HtmlEncode(Label5.Text);
adatt.SelectCommand.Parameters["@cod_padre"].Value = Server.HtmlEncode(TextBox12.Text);
adatt.SelectCommand.Parameters["@cod_madre"].Value = Server.HtmlEncode(TextBox13.Text);*/
adatt.SelectCommand.Parameters["@cod_fiscale"].Value = Server.HtmlEncode(TextBox14.Text);
adatt.SelectCommand.Parameters["@prima_cittadinanza"].Value = Server.HtmlEncode(TextBox33.Text);
/* adatt.SelectCommand.Parameters["@seconda_cittadinanza"].Value = Server.HtmlEncode(TextBox15.Text);
adatt.SelectCommand.Parameters["@nr_atto_iscrizione"].Value = Server.HtmlEncode(TextBox16.Text);
adatt.SelectCommand.Parameters["@parte_i"].Value = Server.HtmlEncode(TextBox17.Text);
adatt.SelectCommand.Parameters["@serie_i"].Value = Server.HtmlEncode(TextBox18.Text);
adatt.SelectCommand.Parameters["@ufficio_i"].Value = Server.HtmlEncode(TextBox19.Text);
adatt.SelectCommand.Parameters["@volume_i"].Value = Server.HtmlEncode(TextBox20.Text);
adatt.SelectCommand.Parameters["@data_i"].Value = Server.HtmlEncode(TextBox21.Text);
adatt.SelectCommand.Parameters["@nr_atto_trascrizione"].Value = Server.HtmlEncode(TextBox22.Text);
adatt.SelectCommand.Parameters["@parte_t"].Value = Server.HtmlEncode(TextBox23.Text);
adatt.SelectCommand.Parameters["@serie_t"].Value = Server.HtmlEncode(TextBox24.Text);
adatt.SelectCommand.Parameters["@ufficio_t"].Value = Server.HtmlEncode(TextBox25.Text);
adatt.SelectCommand.Parameters["@volume_t"].Value = Server.HtmlEncode(TextBox26.Text);
adatt.SelectCommand.Parameters["@data_t"].Value = Server.HtmlEncode(TextBox27.Text);*/
adatt.SelectCommand.Parameters["@cod_condizione"].Value = Server.HtmlEncode(Label6.Text);
adatt.SelectCommand.Parameters["@cod_titolo_studio"].Value =Server.HtmlEncode(Label7.Text);
adatt.SelectCommand.Parameters["@cod_professione"].Value = Server.HtmlEncode(Label8.Text);
adatt.SelectCommand.Parameters["@cod_ramo_attivita"].Value = Server.HtmlEncode(Label9.Text);
adatt.SelectCommand.ExecuteNonQuery();
adatt.SelectCommand.Dispose();
DataSet ds = new DataSet();
adatt.Fill(ds,"tabella");
oConn.Close();
GridView1.DataSource = ds.Tables["tabella"].DefaultView;
GridView1.DataBind();
}
alcuni parametri sono commentati perchè li userò più tardi...
quando vado a riempire le casele di testo che forniscono i parametri e clicco sul button1 mi dice che c'è un errore perchè violo il vincolo di chiave primaria, e guardando il datatbase vedo che il record in effetti è già inserito.. quindi è come se io cercassi di inserire due volte lo stesso record, sebbene il form io lo compili una sola volta e clicchi sul pulsante una sola volta...
ho provato ad usare all'inizio del button1_click il codice
if (! ispostback)
e stavolta l'0aggiornamento non lo fa proprio...
e poi una cosa strana: avete notato l'uso del selectcommand sebbene io voglia implementare una insert?
usando executenonquery non mi crea problemi, ma nel momento in cui metto insertcommand al posto di selectcommand mi fa capire che non riconosce il cambiamento...
uso una stored per l'inserimento (non l'ho postata perchè non credo che il problema sia lì visto che i record li inserisce... a modo suo ma li inserisce...), inoltre uso sqlserver 2005 e c#
è una reazione strana che non mi spiego... cosa succede e come posso risolvere?