El procedimiento lo probe en el analizador de consulta y anda perfecto , me inserta simultaneamente en las dos tablas pero cuando lo ejecuto desde la aplicacion ,da error.
Tambien probe el procedimiento de forma individuales (uno que me ingresa los datos del cliente y otro que me ingresa los del vendedor) en donde a cada uno le asigno un boton para asi serciorarme que pueda ser y me inserta sin problemas.
Pero cuando de los dos procedimientos hago uno no funciona
¿Estara mal realizado?
aqui el code para ver que puede haber mmalo.
Código:
y este es el procedimiento ,Los Pk para la tabla cliente es id_cliente y para vendedor id_vendedorDim mi_conec As SqlClient.SqlConnection Dim mi_comando As SqlClient.SqlCommand Dim resp As DialogResult If MessageBox.Show("Los Datos se Grabaran estas Seguro ", "Advertencia", MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation) = DialogResult.Yes Then Dim mi_consulta As String = "execute cliente_ingresa_cliente '" & TextBox7.Text.Trim & "','" & TextBox1.Text.Trim & "','" & TextBox2.Text.Trim & "','" & TextBox3.Text.Trim & "','" & ComboBox3.Text.Trim & "','" & TextBox5.Text.Trim & "','" & ComboBox2.Text.Trim & "','" & TextBox10.Text.Trim & "','" & TextBox9.Text.Trim & "'," MessageBox.Show(mi_consulta)'para ver que estoy mandando Try mi_conec = New SqlClient.SqlConnection(cadena_conec) mi_comando = New SqlClient.SqlCommand mi_conec.Open() mi_comando.CommandType = CommandType.Text mi_comando.CommandText = mi_consulta mi_comando.Connection = mi_conec If mi_comando.ExecuteNonQuery Then MessageBox.Show(" Proceso Realizado Exitosamente ", "Ingreso de Datos ", MessageBoxButtons.OK, MessageBoxIcon.Information) Else MessageBox.Show("Error En el Ingreso de Datos", "Ingreso De Datos", MessageBoxButtons.OK, MessageBoxIcon.Error) End If Catch ex As SqlException MessageBox.Show("Error de Acceso , es Posible que el codigo del de Pedido ya Exista", "Mantención", MessageBoxButtons.OK, MessageBoxIcon.Error) 'AQUI CAPTURA SIEMPRE EL ERROR , Y NINGUN ID ESTA REPETIDO Finally If Not mi_comando Is Nothing Then mi_comando.Dispose() If Not mi_conec Is Nothing Then mi_conec.Dispose() End Try Else MessageBox.Show("No has Grabado Datos", "Mantención", MessageBoxButtons.OK, MessageBoxIcon.Asterisk) End If
Código:
CREATE procedure cliente_ingresa_cliente ( @id_cliente char(3),@nombre_cliente char(12),@apellido_cliente char(12), @direccion_cliente char(12),@comuna_cliente char(20), @telefono_cliente char(12),@fpago_cliente char(20), @id_vendedor char (2),@nombre_vendedor char(12) ) as begin insert into CLIENTE ( ID_CLIENTE,NOM_CLIENTE, APELLIDO_CLIENTE, DIRECCION_CLIENTE, COMUNA_CLIENTE, TELEFONO_CLIENTE,PAGO_CLIENTE ) values ( @id_cliente,@nombre_cliente,@apellido_cliente, @direccion_cliente,@comuna_cliente , @telefono_cliente,@fpago_cliente ) insert into VENDEDOR ( ID_VENDEDOR,NOM_VENDEDOR ) values ( @id_vendedor,@nombre_vendedor ) end GO