Fondamentalmente quello che sto facendo è che, facendo clic su un pulsante, il programma estrarrà i dati da una particolare riga in base a ciò che l'utente ha scelto e lo colloca in una tabella diversa utilizzando INSERT
. Quello che segue è il codice.Sintassi dell'istruzione SQL Insert
private void button3_Click(object sender, EventArgs e)
{
const String connectionString = "Data Source = Vanessa-PC\\SQLEXPRESS; Initial Catalog = IUMDC; Connect Timeout = 15; Integrated Security = true";
SqlConnection con = new SqlConnection(connectionString);
//int SituationID1;
label24.Show();
foreach (SitID x in Sittbl)
{
if (x.ID == Convert.ToInt16(comboBox1.SelectedItem))
{
try
{
con.Open();
SqlCommand command = new SqlCommand("SELECT * FROM Situation WHERE SituationID=" + x.SitIDs, con);
SqlDataReader dr = command.ExecuteReader();
while (dr.Read())
{
sitid1 = Convert.ToInt32(dr[0]);
name1 = dr[4].ToString();
incident1 = Convert.ToDateTime(dr[1]);
charges1 = dr[5].ToString();
nature1 = dr[2].ToString();
}
con.Close();
}
catch (SqlException ex)
{
MessageBox.Show("Database failed to connect" + ex.Message);
}
//SituationID = x.SitIDs;
}
}
try
{
con.Open();
SqlCommand command1 = new SqlCommand("INSERT INTO CurrentSit VALUES (" + sitid1 + ",'" + incident1.ToString("YYYY-mm-DD") + "', '" + nature1 + "', '" + name1 + "', '" + charges1 + "'", con);
SqlDataReader dr1 = command1.ExecuteReader();
con.Close();
}
catch (SqlException ex)
{
MessageBox.Show("Database failed to connect" + ex.Message);
}
//Situation Sit = new Situation();
//Sit.ShowDialog();
}
Il mio codice non riesce e dice
"Sintassi non corretta accanto elemento fila"
I tipi di due tabelle sono uguali e ho cercato di testare questo fondo !
Nel fare un 'INSERT', non stai tornando una raccolta di dati - quindi, si dovrebbe usare' command1.ExecuteNonQuery(); 'al posto del '.ExecuteReader()' dove poi ignori semplicemente il lettore, davvero .... –