
Guardar en varias tablas mysql
Publicado por Javier (1 intervención) el 20/12/2015 02:43:56
Buenas.
Soy nuevo en el lenguaje Visual Basic .NET, después de un tiempo de buscar en la web no puedo realizar la inserción en dos tablas.
Tengo lo siguiente
Diagrama entidad relacion

El código lo quiero modular, el Control se encarga de validar reglas de negocio armar querys y ejecutar lo relacionado a la persistencia
Actualmente puede hacer el insert de Persona pero no puedo obtener el id, me sugieren hacer un select max para obtener el id del registro que acabo de ingresar pero ese metodo no me parece confiable.
De antemano gracias
Soy nuevo en el lenguaje Visual Basic .NET, después de un tiempo de buscar en la web no puedo realizar la inserción en dos tablas.
Tengo lo siguiente
Diagrama entidad relacion
El código lo quiero modular, el Control se encarga de validar reglas de negocio armar querys y ejecutar lo relacionado a la persistencia
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Imports MySql.Data.MySqlClient
Public Class UsuarioControl
Friend conn = New Persistencia
Public Sub guardarUsuario(ByVal usuario As UsuarioDTO, persona As PersonaDTO)
'Se valida lo relacionado al negocio y posterio a ello se llama los metodos de guardado
Dim dtoUsuario = New UsuarioDTO
Dim dtoPersona = New PersonaDTO
Dim insertPersona As String
Dim insertUsuario As String
insertPersona = "INSERT INTO T_Persona (nombrePersona, paternoPersona, maternoPersona, emailPersona) VALUES ('" & persona.nombrePersona & "', '" & persona.paternoPersona & "', '" & persona.maternoPersona & "', '" & persona.emailPersona & "')"
conn.guardarRegistro(insertPersona)
'usuario.idPersona = a lo que regresa la linea anterior
conn.guardarRegistro(insertPersona)
insertUsuario = "INSERT INTO T_Usuario (usuario, contrasena, idPersona) VALUES ('" & usuario.usuario & "', '" & usuario.contrasena & "', '" & usuario.idPersona & "')"
conn.guardarRegistro(insertUsuario)
End Sub
End Class
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
39
40
41
42
43
44
45
Imports MySql.Data.MySqlClient
Public Class Persistencia
Public conexion As MySqlConnection
'Método encargado de la conexión a la base de datos
Public Sub abrirConexion()
Dim servidor As String = "localhost"
Dim usuario As String = "usuario"
Dim contrasena As String = "contrasena"
Dim puerto As String = "puerto"
Dim baseDatos As String = "BaseDeDatos"
Try
conexion = New MySqlConnection
conexion.ConnectionString = "server=" & servidor &
"; user id=" & usuario & "; password=" & contrasena &
"; port=" & puerto & "; database=" & baseDatos & ";"
conexion.Open()
MessageBox.Show("Conexion exitosa")
Catch ex As Exception
MessageBox.Show("Error en la conexión")
End Try
End Sub
Public Sub cerrarConexion()
Dim id As Integer
If conexion.State = ConnectionState.Open Then
conexion.Close()
MessageBox.Show("Conexion terminada")
End If
End Sub
Public Sub guardarRegistro(ByVal query As String)
Try
abrirConexion()
Dim command As New MySqlCommand(query, conexion)
command.ExecuteScalar()
'id = lo que regresa la linea anterior
cerrarConexion()
Return id
Catch ex As Exception
MsgBox(ex.ToString)
End Try
End Sub
Actualmente puede hacer el insert de Persona pero no puedo obtener el id, me sugieren hacer un select max para obtener el id del registro que acabo de ingresar pero ese metodo no me parece confiable.
De antemano gracias
Valora esta pregunta


0