Visual Basic.NET - RELACIONAR TABLAS Y GUARDAR LOS ID

   
Vista:

RELACIONAR TABLAS Y GUARDAR LOS ID

Publicado por nato (55 intervenciones) el 08/08/2017 01:34:13
gracias de antemano

tengo 2 tablas una es de usuario y otra de almacenes
quiero asignarle un almacen al usuario pero en la tabla usuario en el campo almacen que me guarde solo el id del almacen

pongo imagene como estan ahorita pero no quiero que en la tabla usuario el almacen se almacene todo el nombre solo el id de almacen

pero la verdad no se como hacer la sintaxis

tablas

gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RELACIONAR TABLAS Y GUARDAR LOS ID

Publicado por Miguel (476 intervenciones) el 08/08/2017 11:33:26
Si solo es un almacén por usuario tienes que guardar el id de almacén en la tabla de usuarios (actualmente estás guardando el campo 'descripcion'), y si pueden ser varios almacenes por usuario ya tendrías que crear otra tabla en donde almacenas el id del usuario y el id del almacén.

Slds.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RELACIONAR TABLAS Y GUARDAR LOS ID

Publicado por nato (55 intervenciones) el 08/08/2017 23:10:53
gracias por tu respuesta

pero te muestro el form para guardar el usuario,
cargo un combobox con los nombres de los almacenes no el id
y pongo el codigo para guardar lo que no me sale o mas bien no se como deva ir al momento de guardar
dependiendo del almacen que selecciono el cliente me guarde el id y no el nombre del almacen

altausu
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
Using conn As New SqlConnection(CADENACONEXION1)
 
	conn.Open()
 
	Dim query1 As String = "INSERT INTO usuarios (nombreusuario,almacenusuario,numusuario) VALUES (@nombreusuario,@almacenusuario,@numusuario)"
	Dim cmd As New SqlCommand(query1, conn)
	Try
 
		cmd.Parameters.Clear()
		cmd.Parameters.AddWithValue("@nombreusuario", txtnombre.Text)
		cmd.Parameters.AddWithValue("@almacenusuario", cbalmacenes.Text)
		cmd.Parameters.AddWithValue("@numusuario", txtcontraseña.Text)
 
 
		cmd.ExecuteNonQuery()
 
		MessageBox.Show("USUARIO GUARDADO CORRECTAMENTE") ' si los datos fueron guardados mandara este mensaje 
 
		txtnombre.Text = ""
		txtcontraseña.Text = ""
		txtnombre.Focus()
	Catch ex As Exception
 
		MessageBox.Show("ERROR AL INGRESAR LA CLASE") 'si los datos no fueron guardados mandara este mensaje
	Finally
 
		conn.Close()
	End Try
End Using
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RELACIONAR TABLAS Y GUARDAR LOS ID

Publicado por Diego (151 intervenciones) el 09/08/2017 14:53:39
Hola, ese ultimo mensaje fue mas esclarecedor..... En tu codigo la linea 11 dice:

1
cmd.Parameters.AddWithValue("@almacenusuario", cbalmacenes.Text)

Desconozco como tenes conectado el combobox, pero.... Una cosa es lo que se muestra al usuario, me parece bien sea la descripcion, pero, eso sería el DISPLAYMEMBER del combo y cuando referencias CBALMACENES.TEXT estas utilizando ese texto seleccionado para almacenarlo en el parametro @almacenusuario, tu codigo deberia ser asi...

1
cmd.Parameters.AddWithValue("@almacenusuario", cbalmacenes.selectedvalue)

Otra sugerencia que te hago es, que el Try..Catch solo envuelva al cmd.ExecuteNonQuery() 'Es donde puede saltar el error al momento de actualizar

Espero haberte podido orientar. Si no das con la solucion, necesito saber, como conectas el cbalmacenes con su origen de datos.
Saludos y +Bytes.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

RELACIONAR TABLAS Y GUARDAR LOS ID

Publicado por nato (55 intervenciones) el 10/08/2017 17:26:29
gracias por su ayuda

el combo lo lleno asi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
Sub llenaralacenes()
 
	cbalmacenes.Items.Add("Seleccione un almacen")
 
 
	Using cnn As New SqlConnection(CADENACONEXION1)
 
		Try
			Dim cmd As SqlCommand = cnn.CreateCommand()
			cmd.CommandText = "SELECT * FROM almacenes"
 
 
			cnn.Open()
 
			Dim dr As SqlDataReader =
			cmd.ExecuteReader(CommandBehavior.CloseConnection)
 
 
			While dr.Read()
				cbalmacenes.Items.Add(dr("descripcion").ToString())
			End While
 
 
			dr.Close()
 
		Catch ex As Exception
			MessageBox.Show(ex.Message)
 
		End Try
 
	End Using
 
 
	cbalmacenes.SelectedIndex = 0
 
 
 
End Sub
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RELACIONAR TABLAS Y GUARDAR LOS ID

Publicado por nato (55 intervenciones) el 10/08/2017 22:47:35
gracias a los que me ayudaron

ya quedo como queria

en la propiedad del combobox agregue el datasource
y en las propidades


DISPLAYMENBER = "ALMACENES"
VALUEMENBER = "idalmacen"


y guardo como quería muchas gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar

RELACIONAR TABLAS Y GUARDAR LOS ID

Publicado por Miguel (476 intervenciones) el 09/08/2017 17:52:02
Como ya te respondieron anteriormente, dependiendo de cómo cargas tu ComboBox tienes que usar las propiedades DisplayMember y ValueMember par configurar, y luego obtener el id con la propiedad 'SelectedValue'.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Revisar política de publicidad