Foros del Web » Programación para mayores de 30 ;) » .NET »

Insercion por Procedimiento Almacenado

Estas en el tema de Insercion por Procedimiento Almacenado en el foro de .NET en Foros del Web. Bueno tengo el siguiente problema.. logro hacer una insersion a la BD por parametros a traves de VB.NET.. Lo que me pasa es que hago ...
  #1 (permalink)  
Antiguo 12/09/2010, 21:56
 
Fecha de Ingreso: enero-2010
Ubicación: Stgo - Chile
Mensajes: 73
Antigüedad: 14 años, 10 meses
Puntos: 0
Insercion por Procedimiento Almacenado

Bueno tengo el siguiente problema.. logro hacer una insersion a la BD por parametros a traves de VB.NET..

Lo que me pasa es que hago la insercion y todo pero en el cambo nombre y tipo que son varchar no me inserta todo si no que la 1era letra no se que podra ser

dejo los codigos para ver si alguien me dice donde puedo estar cometiendo el error, por que se que es algo bien pequeño creo.-

EL PROCEDIMIENTO ALMACENADO
----------------------------------------------------------------------------------

ALTER procedure [dbo].[sp_guardar_universidad]
@cod int,
@nombre varchar,
@tipo varchar,
@cont int = 0 output
as
if (SELECT COUNT(*) FROM universidad WHERE cod_universidad = @cod) = 0
begin
INSERT INTO universidad (cod_universidad, nombre, tipo_universidad)
VALUES (@cod, @nombre, @tipo)
set @cont = 1
end
else
begin
set @cont = 2
end

-------------------------------------------------------------------------------------

El codigo VB.NET

--------------------------------------------------------------------------------------

Private Sub btn_guardar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_guardar.Click
Dim con As SqlConnection = Conexion.ObtenerConexion()
Using con
Try
Dim cmd As New SqlCommand("sp_guardar_universidad", con)
cmd.CommandType = CommandType.StoredProcedure
cmd.Parameters.Add("@cod", SqlDbType.Int).Value = CInt(txtcod.Text)
cmd.Parameters.Add("@nombre", SqlDbType.VarChar).Value = CStr(txtins.Text)
cmd.Parameters.Add("@tipo", SqlDbType.VarChar).Value = CStr(combo_uni.Text)
cmd.Parameters.Add("@cont", SqlDbType.Int)
cmd.Parameters("@cont").Direction = ParameterDirection.Output
MsgBox(txtins.Text)
cmd.ExecuteNonQuery()
Dim cont As Integer = CInt(cmd.Parameters("@cont").Value)
If cont = 1 Then
MsgBox("Inserción realizada")
Actualizar()
Else
MsgBox("Ya existe este registro")
End If
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
End Using
End Sub



--------------------------------------------------------


15 Helen Keller CFT
16 U P
43 s P
55 l E
100 l E

Por ejemplo la insersion 15 la hize bien por consulta normal pero despues con procdiimiento me inserta eso..

si alguien me puede ayudar se lo agradeceria mucho

Saludos
  #2 (permalink)  
Antiguo 13/09/2010, 07:19
Avatar de xjuanch0x  
Fecha de Ingreso: septiembre-2009
Mensajes: 125
Antigüedad: 15 años, 2 meses
Puntos: 1
Respuesta: Insercion por Procedimiento Almacenado

Cita:
Iniciado por degauss Ver Mensaje
Bueno tengo el siguiente problema.. logro hacer una insersion a la BD por parametros a traves de VB.NET..

Lo que me pasa es que hago la insercion y todo pero en el cambo nombre y tipo que son varchar no me inserta todo si no que la 1era letra no se que podra ser

dejo los codigos para ver si alguien me dice donde puedo estar cometiendo el error, por que se que es algo bien pequeño creo.-

EL PROCEDIMIENTO ALMACENADO
----------------------------------------------------------------------------------

ALTER procedure [dbo].[sp_guardar_universidad]
@cod int,
@nombre varchar,
@tipo varchar,
@cont int = 0 output
as
if (SELECT COUNT(*) FROM universidad WHERE cod_universidad = @cod) = 0
begin
INSERT INTO universidad (cod_universidad, nombre, tipo_universidad)
VALUES (@cod, @nombre, @tipo)
set @cont = 1
end
else
begin
set @cont = 2
end

-------------------------------------------------------------------------------------

El codigo VB.NET

--------------------------------------------------------------------------------------

Private Sub btn_guardar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_guardar.Click
Dim con As SqlConnection = Conexion.ObtenerConexion()
Using con
Try
Dim cmd As New SqlCommand("sp_guardar_universidad", con)
cmd.CommandType = CommandType.StoredProcedure
cmd.Parameters.Add("@cod", SqlDbType.Int).Value = CInt(txtcod.Text)
cmd.Parameters.Add("@nombre", SqlDbType.VarChar).Value = CStr(txtins.Text)
cmd.Parameters.Add("@tipo", SqlDbType.VarChar).Value = CStr(combo_uni.Text)
cmd.Parameters.Add("@cont", SqlDbType.Int)
cmd.Parameters("@cont").Direction = ParameterDirection.Output
MsgBox(txtins.Text)
cmd.ExecuteNonQuery()
Dim cont As Integer = CInt(cmd.Parameters("@cont").Value)
If cont = 1 Then
MsgBox("Inserción realizada")
Actualizar()
Else
MsgBox("Ya existe este registro")
End If
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
End Using
End Sub



--------------------------------------------------------


15 Helen Keller CFT
16 U P
43 s P
55 l E
100 l E

Por ejemplo la insersion 15 la hize bien por consulta normal pero despues con procdiimiento me inserta eso..

si alguien me puede ayudar se lo agradeceria mucho

Saludos
Modifica el SP para que reciba el nombre en una varchar(100) así:

@nombre varchar(100)
__________________
Juan David Torres Vasquez
[email protected]
Microsoft Certified Technology Specialist (MCTS)
DCE Platinum en Visual C# y VB.NET

Etiquetas: procedimiento, almacenar
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:03.