Insertar datos en tablas relacionadas en sql y visual

Estoy empezando con visual y sql, y tengo el visual 2010 de prueba y con una base de datos SQL.
Mi duda radica en lo siguiente: Tengo dos tablas una de nombre estados y otra de nombre empleados, para insertar datos en la tabla estado no tuve problemas porque era única y dicha tabla ya no va a seguir creciendo, y por otro lado tengo la tabla empleados y aquí es donde estoy teniendo problemas porqqu al querer insertar un registro a la base de datos de la tabla empleados me marca error, y solo quiero que se guerde en la table empleados el estado seleccionado al momento de capturar los datos del empeado, los campos de esta tabla son:
No. Nomina, nombre, apellido paterno, apellido materno, calle, numero exterior, numero interior, colonia, municipio, estado, código postal, puesto.
Y quiero insertar datos ene esta tabla y que solo guarde el estado seleccionado

1 respuesta

Respuesta
1
y... ¿El mensaje de error es...?
Hola,,, probablemente no me explique bien tengo dos tablas EMPLEADOS Y ESTADOS
al capturar los datos de los empleados y al seleccionar el ESTADO de donde son se guarde en la tabla EMPLEADOS el estado seleccionado en su momento de su captura, y para lo siguiente utilizo el siguiente código:
Private Sub Button1_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
If PUREXDataSet.HasChanges Then
' Indicamos la instrucción SQL correspondiente
SqlCommand1.CommandText = "INSERT INTO empleados(No, Nombre) VALUES(@No, @Nombre), Select Estados.estado from estados"
' Establecemos para el comando,
' la (conexión) que utilizaremos
SqlCommand1.Connection = SqlConnection1
' Le indicamos al DataAdapter, cuál es el
' comando de inserción que usaremos
SqlDataAdapter1.InsertCommand = SqlCommand1
' Añadimos los parámetros y comandos correspondientes
' para cada campo a añadir en la base de datos
SqlCommand1.Parameters.Add("@No", Data.SqlDbType.Int, 32, "No")
SqlCommand1.Parameters.Add("@Nombre", Data.SqlDbType.NVarChar, 50, "Nombre")
SqlCommand1.Parameters.Add("@Estado", Data.SqlDbType.NVarChar, 50, "Estado")
SqlCommand1.Parameters.Add("@Puesto", Data.SqlDbType.NVarChar, 50, "Puesto")
' Abrimos la conexión
SqlConnection1.Open()
' Realizamos la inserción de datos desde el DataSet
' a través del DataAdapter
SqlDataAdapter1.Update(PUREXDataSet, "Empleados")
' Cerramos la conexión
SqlConnection1.Close()
' Indicamos con un mensaje que la inserción
' de datos se ha realizado con éxito
MessageBox.Show("Datos insertados correctamente")
End If
End Sub
El Error radica que cuando agrego los registros el mensaje que me manda me indica que los datos fueron ingresados correctamento, pero al revisar la base de datos me doy cuenta que no es así, este mismo código me funciona para cuando son tablas únicas y si se registran los datos correctamente en el Base de Datos excepto por el Select Estados. Estado from estados Pero también no me deja agregar un tercer registro y ya es cuando me marca el siguiente error:
El nombre de variable '@No' ya se ha declarado. Los nombres de variable deben ser únicos en cada lote de consultas o procedimiento almacenado.
Sintaxis incorrecta cerca de la palabra clave 'Select'.

SqlDataAdapter1. Update(PUREXDataSet, "Empleados")  AQUI ES DONDE SE ATORA AL MOMENTO DE MARCAR ESTE ERROR
Como mencionaba voy empezando y tengo manuales que sigo al pie de la letra pero esto no me ha querido funcionar.
Gracias por tu tiempo
Lo que sucede es que estas utilizando controles enlazados a datos y esos controles siempre dan problemas pues uno no tiene control sobre ellos
Te recomiendo aunque te parezca más trabajo y más engorroso que todo lo hagas por código con ADO.NET pues así te evitas errores como el que tienes, que sinceramente no creo tenga solución pues uno no tiene acceso a cambiar el query que se genera de manera automática para la actualazacion de los datos.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas