Tengo dos procedimientos almacenados
Esta función es para agregar la tabla direccion donde el campo idDireccion es autoincrementable y se debe relacionar con el campo idDireccion de la tabla contribuyente
Código:
Esta es la otra funciónFunction insertarDireccion(ByVal idMunicipio As Integer, ByVal idColonia As Integer, ByVal idCalle As Integer, ByVal num As Integer) Dim salida As String = "Se insertaron correctamente los registros" Try cmd = New SqlCommand("SpDireccionInsertar", cn) cmd.CommandType = CommandType.StoredProcedure With cmd.Parameters .AddWithValue("@idCalle", idCalle) .AddWithValue("@no", num) .AddWithValue("@idColonia", idColonia) .AddWithValue("@idMunicipio", idMunicipio) End With cmd.ExecuteNonQuery() Catch ex As Exception salida = " No se insertó debido a: " + ex.ToString End Try Return salida End Function
Código:
Ahora en el boton Insertar ya para agregar el usuario con el dato relacionado en este caso idDireccion tengo estoFunction insertarContribuyente1(ByVal nombre As String, ByVal apellidoPaterno As String, ByVal apellidoMaterno As String, ByVal idDireccion As String, ByVal cel As String, ByVal tel As String, ByVal email As String) Dim salida As String = "Se insertaron correctamente los registros" Try cmd = New SqlCommand("SpInsertarContribuyente1", cn) cmd.CommandType = CommandType.StoredProcedure With cmd.Parameters .AddWithValue("@nombre", nombre) .AddWithValue("@apellidoPaterno", apellidoPaterno) .AddWithValue("@apellidoMaterno", apellidoMaterno) .AddWithValue("@idDireccion", idDireccion) .AddWithValue("@cel", cel) .AddWithValue("@tel", tel) .AddWithValue("@email", email) End With cmd.ExecuteNonQuery() Catch ex As Exception salida = " No se insertó debido a: " + ex.ToString End Try Return salida End Function
Código:
Al presionar el boton insertar me manda un error, y verifico en la bd y me llena la tabla direccion, pero no la tabla contribuyentes por la razon de que no rellena el textbox para su posterior insercion, me manda el siguiente error.Dim conexion As New SqlConnection("Data Source=XXX\SQL;Initial Catalog=sica;Integrated Security=True") ' Esto lo tengo en el load del formulario Private Sub btonInsertar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btonInsertar.Click Dim consultaidDir As New SqlCommand("SELECT MAX(idDireccion) AS idDireccion FROM direccion", conexion) Dim idDireccion As Integer Int(idDireccion = 0) MsgBox(cnn.insertarDireccion(cboidMupio.SelectedItem, cboColonia.SelectedIndex + 1, cboidCalle.SelectedItem, Val(txtNoExterior.Text))) conexion.Open() idDireccion = consultaidDir.ExecuteScalar() idDireccion = CType(txtidDireccion.Text, Integer) cnn.insertarContribuyente1(txtNombre.Text, txtAP.Text, txtAM.Text, txtidDireccion.Text, txttel.Text, txtcel.Text, txtemail.Text) conexion.Close() End Sub
La conversión de la cadena "" en el tipo 'Integer' no es válida.
Podrìan sugerirme algo por favor?