Principales respuestas
incorrect syntax near 0 in update

Pregunta
-
Al dar click al botton me da error "incorrect syntax near 0"
string notaTicket = this.txtResolucion.Text; string masterCargado = this.txtMasterCargado.Text; string series = this.txtSeriesRes.Text; DateTime fechaResolucion = Convert.ToDateTime(this.txtFechaResolucion.Text); SqlConnection consString = new SqlConnection(ConfigurationManager.ConnectionStrings["connectionString"].ConnectionString); SqlCommand cmd = new SqlCommand(); cmd.CommandText = "UPDATE tblTicket SET idEstado = 'RES', idMotivoEstado = 'TEC', notaTicket = '" + notaTicket +"',masterCargado = '" + masterCargado + "', fechaResolucion = " + fechaResolucion + " WHERE idEstado = 'ENC' AND serieSap IN (" + series + ")"; cmd.Connection = consString; consString.Open(); cmd.ExecuteNonQuery(); cmd.Clone();
Respuestas
-
hola
no tienes que concatener los valores en el string, debes usar parametros
using (SqlConnection conn = new SqlConnection("<connection string>")) { conn.Open(); string query = "UPDATE NombreTabla SET campo1=@param1, campo2 = @param2 WHERE id = @paramid"; SqlCommand cmd = new SqlCommand(query, conn); cmd.Parameters.AddWithValue("@param1", TextBox1.Text); cmd.Parameters.AddWithValue("@param2", Convert.ToInt32(Textbox2.Text)); cmd.Parameters.AddWithValue("@paramid", Convert.ToInt32(Textbox3.Text)); cmd.ExecuteNonQuery(); }
el unico valor que no vas a poder asignar por parametro es el IN salvo que uses un Table-Valued
saludos
Leandro Tuttini
Blog
MVP Profile
Buenos Aires
Argentina- Propuesto como respuesta Joel C. Naupa Crispín lunes, 13 de marzo de 2017 21:11
- Marcado como respuesta Joyce_ACModerator viernes, 17 de marzo de 2017 21:51
Todas las respuestas
-
hola
no tienes que concatener los valores en el string, debes usar parametros
using (SqlConnection conn = new SqlConnection("<connection string>")) { conn.Open(); string query = "UPDATE NombreTabla SET campo1=@param1, campo2 = @param2 WHERE id = @paramid"; SqlCommand cmd = new SqlCommand(query, conn); cmd.Parameters.AddWithValue("@param1", TextBox1.Text); cmd.Parameters.AddWithValue("@param2", Convert.ToInt32(Textbox2.Text)); cmd.Parameters.AddWithValue("@paramid", Convert.ToInt32(Textbox3.Text)); cmd.ExecuteNonQuery(); }
el unico valor que no vas a poder asignar por parametro es el IN salvo que uses un Table-Valued
saludos
Leandro Tuttini
Blog
MVP Profile
Buenos Aires
Argentina- Propuesto como respuesta Joel C. Naupa Crispín lunes, 13 de marzo de 2017 21:11
- Marcado como respuesta Joyce_ACModerator viernes, 17 de marzo de 2017 21:51
-
-
Hola Claudio Marin,
Gracias por visitar los foros, según observo en tu entrada anterior comentas que has podido resolver tu problema, comentarte que sería de gran ayuda para futuros usuarios que visiten los foros el que pudieras marcar como respuesta, aquella que te haya sido de utilidad, o bien que pudieras compartirnos la forma en la cual resolviste el mismo.
Saludos
Joyce__________________________________________________________________________________________
Por favor, recuerde "Marcar como respuesta" las respuestas que hayan resuelto su problema, hace que sea más fácil para los otros visitantes encontrar la solución más tarde. Microsoft ofrece este servicio de forma gratuita, con la finalidad de ayudar a los usuarios y la ampliación de la base de datos de conocimientos relacionados con los productos y tecnologías de Microsoft. Este contenido es proporcionado "tal cual" y no implica ninguna responsabilidad de parte de Microsoft.