Usuario
El nombre de objeto 'nombre tabla'no es valido

Pregunta
-
cuando voy a ejecutar la sentencia insert en c# sale el error antes mencionado:
aca les dejo el codigo para que revisen
pedido_Lite = es el nombre de la tabla segun la base de datos donde are insert
con.Open(); string query = "insert into pedido_Lite(idcliente,iduser,ref_item,desc_item,cant_item,cant_total_item) values(@usu,@cliente,@referencia,@descrípcion,@cantidad,@cant_item) "; foreach (GridViewRow row in GridView2.Rows) { if (row!= null){ SqlCommand cmd = new SqlCommand(query, con); cmd.Parameters.Clear(); cmd.Parameters.AddWithValue("@usu", usu); cmd.Parameters.AddWithValue("@cliente", cliente); cmd.Parameters.AddWithValue("@ref_item", row.Cells[1].ToString()); cmd.Parameters.AddWithValue("@referencia", row.Cells[2].ToString()); cmd.Parameters.AddWithValue("@descrípcion", row.Cells[3].ToString()); cmd.Parameters.AddWithValue("@cantidad", 66/*Convert.ToInt32(row.Cells[5].ToString())*/); cmd.Parameters.AddWithValue("@cant_item", Convert.ToInt32(row.Cells.Count.ToString())); cmd.ExecuteNonQuery(); } } Response.Write("Pedido realizado papu"); con.Close();
- Editado Juan Camilo Narvaez miércoles, 14 de septiembre de 2016 15:10
- Cambiado Sergio Parra lunes, 19 de septiembre de 2016 11:35 pregunta sobre acceso a datos
Todas las respuestas
-
-
¿Cuál es el error textual que obtienes?
Si el error hace referencia a una tabla de base de datos entonces valida lo siguiente:
- Que la cadena de conexión apunte a la base de datos correcta.
- Que la tabla pertenezca al esquema predeterminado.
- Que el nombre del objeto (tabla de base de datos) este correctamente escrito tal y como está en la base de datos (considera mayúsculas y minúsculas).
Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios. -
hola
partamos de la base que definir un INSERT no es solo escribir una cadena, tienes que dejar espacios entre la definicion de la tabla el values y los parentesis, sino vas a tener estos mensajes de error
insert into pedido_Lite (idcliente,
) values (
deja espacios
----
por otro lado para que usas el Parameters.Clear() si defines una nueva instancia del command dentro del loop? eso no tiene sentido
creo que deberias usar
SqlCommand cmd = new SqlCommand(query, con);
foreach (GridViewRow row in GridView2.Rows) { if (row!= null){ cmd.Parameters.Clear(); cmd.Parameters.AddWithValue("@usu", usu);
//resto codigo
saludos
Leandro Tuttini
Blog
MVP Profile
Buenos Aires
Argentina -
-
-
cuando muestra el mensaje del error no menciona el nombre de la tabla ? porque es raro que solo diga "nombre tabla" sin mencionar de cual se trata
validaste el connection string que te estes conectando a la db correcta ?
saludos
Leandro Tuttini
Blog
MVP Profile
Buenos Aires
Argentina -
Hola @Juan Camilo Narvaez
Después de todas las recomendaciones y correciones de los compañeros que ¿Error te esta dando?, podrías fijarte en el Inner Exception/Mesage.
Pedro Ávila
"El hombre sabio querrá estar siempre con quien sea mejor que él."
Lima - Perú