J'ai un bouton qui enregistre le contenu édité dans datagridview dans ma conception de l'interface utilisateur. Voici le code de cette Button_Save:MISE À JOUR Requête: Syntaxe incorrecte (éditée)
public void btnUpdate_Click(object sender, EventArgs e)
{
foreach (DataGridViewRow row in dataGridView1.Rows)
{
System.Data.SqlClient.SqlConnection sqlConnection1 =
new System.Data.SqlClient.SqlConnection("server=Test; Integrated Security=true; Database=Test;");
System.Data.SqlClient.SqlCommand cmd = new System.Data.SqlClient.SqlCommand();
var sql = new StringBuilder();
sql.AppendLine("UPDATE dbo.JobStatus");
sql.AppendLine("Set ShipTrackingNumber = @ShipTrackingNumber");
sql.AppendLine(", ShipMethodTransmitted = @ShipMethodTransmitted");
sql.AppendLine(", DateShipTransmitProcessed = @DateShipTransmitProcessed");
sql.AppendLine(", ShipmentProcessedBy = @ShipmentProcessedBy");
sql.AppendLine(", Critical = @Critical");
sql.AppendLine(", ShipTransmitStatus = @ShipTransmitStatus");
sql.AppendLine("Where jobtableId = @jobTableId");
cmd.Connection = sqlConnection1;
cmd.CommandText = sql.ToString();
cmd.Parameters.AddWithValue("@TrackingNumber", row.Cells[7].FormattedValue);
cmd.Parameters.AddWithValue("@ShipMethodTransmitted", row.Cells[8].FormattedValue);
cmd.Parameters.AddWithValue("@DateShipTransmitProcessed", row.Cells[9].FormattedValue);
cmd.Parameters.AddWithValue("@ShipmentProcessedBy", row.Cells[10].FormattedValue);
cmd.Parameters.AddWithValue("@Critical", row.Cells[11].FormattedValue);
cmd.Parameters.AddWithValue("@ShipTransmitStatus", row.Cells[13].FormattedValue);
cmd.Parameters.AddWithValue("@jobTableId", row.Cells[5].FormattedValue);
sqlConnection1.Open();
cmd.ExecuteNonQuery();
sqlConnection1.Close();
Ce que je veux erreur est que: « doit déclarer la variable scalaire « @ShipTrackingNumber » Je ne veux pas mettre ShipTrackingNumber à partir du code Au lieu de cela, je veux chercher.. à partir de l'interface utilisateur.
ce que je fais mal ici?
plus que je ne vois pas un '.AddWithValue ("@ShipTrackingNumber", ...) '(juste un' .AddWithValue ("@ TrackingNumber") ')? Rien. –
Je reçois la valeur de ShipTrackingNumber de l'interface utilisateur. Qui est dans la colonne 7.C'est pourquoi il est écrit: cmd.Parameters.AddWithValue ("@ ShipTrackingNumber", row.Cells [7] .FormattedValue); –