Me Inserta Blancos

16/12/2005 - 17:04 por Daniel H. Villa | Informe spam
Hola Grupo:

Estoy trabajando con VB.net 2003. Me doy cuenta que cuando inserto un
registro, utilizando un Stored Procedure, me permite guardar blancos.

A pesar de que mi tabla de SQL Server tengo deshabilitada la opcion de no
permitir valores nulos en todos mis campos lo puedo hacer desde VB.net.

Como puedo hacer que no sea posible esto, sin necesidad de invertir en hacer
una condición para no permitir esto, ya que le estoy dejando toda el trabajo
a la programación si se puede hacer desde el motor de SQL Server.

Esta es mi rutina.

Private Sub Insert_Usuario()

Dim Conn = New SqlConnection

Dim Cmd = New SqlCommand

Try

Conn = New SqlConnection(Conexion)

Conn.open()

Cmd = New SqlCommand("sp_UsuarioInsert", Conn)

Cmd.CommandType = CommandType.StoredProcedure

'Ap_Pat

Dim pAp_Pat = New SqlParameter("@Ap_Pat", SqlDbType.VarChar, 15)

pAp_Pat.Value = Me.txtAp_Pat.Text

Cmd.Parameters.Add(pAp_Pat)

' Ap_Mat

Dim pAp_Mat = New SqlParameter("@Ap_Mat", SqlDbType.VarChar, 15)

pAp_Mat.Value = Me.txtAp_Mat.Text

Cmd.Parameters.Add(pAp_Mat)

' Nombre

Dim pNombre = New SqlParameter("@Nombre", SqlDbType.VarChar, 15)

pNombre.Value = Me.txtNombre.Text

Cmd.Parameters.Add(pNombre)

' Login

Dim pLogin = New SqlParameter("@Login", SqlDbType.VarChar, 10)

pLogin.Value = Me.txtLogin.Text

Cmd.Parameters.Add(pLogin)

' Password

Dim pPassword = New SqlParameter("@Password", SqlDbType.VarChar, 10)

pPassword.Value = Me.txtPassword.Text

Cmd.Parameters.Add(pPassword)

' ejecuta

Cmd.ExecuteNonQuery()

Catch Err As Exception

Me.lblMensaje.Text = Err.Message ' Tratamiento de Error

Catch Err As SqlException

Me.lblMensaje.Text = Err.Source ' Tratamiento de Error

Finally

Conn.close()

End Try

End Sub



Este es mi Stored Procedure

CREATE PROCEDURE sp_UsuarioInsert
(
@Ap_Pat varchar(15),
@Ap_Mat varchar(15),
@Nombre varchar(15),
@Login varchar(10),
@Password varchar(10)
)
AS
Insert into Tbl_Usuario (Ap_Pat, Ap_Mat, Nombre, Login, Password)
VALUES (@Ap_Pat, @Ap_Mat, @Nombre, @Login, @Password)
GO



Salu2 :-)))

(""'·._.·L.I. Daniel Villa·._.·'"")

Preguntas similare

Leer las respuestas

#1 Imac_man
16/12/2005 - 20:42 | Informe spam
Es extraño que menciones que se puede insertar Null desde VB.net si la tabla
no lo permite. ¿Has intentado introducir valores Null directamente sobre la
tabla para comprobar que has establecido bien la propiedad AllowNull.?

"Daniel H. Villa" escribió en el mensaje
news:
Hola Grupo:

Estoy trabajando con VB.net 2003. Me doy cuenta que cuando inserto un
registro, utilizando un Stored Procedure, me permite guardar blancos.

A pesar de que mi tabla de SQL Server tengo deshabilitada la opcion de no
permitir valores nulos en todos mis campos lo puedo hacer desde VB.net.

Como puedo hacer que no sea posible esto, sin necesidad de invertir en
hacer una condición para no permitir esto, ya que le estoy dejando toda el
trabajo a la programación si se puede hacer desde el motor de SQL Server.

Esta es mi rutina.

Private Sub Insert_Usuario()

Dim Conn = New SqlConnection

Dim Cmd = New SqlCommand

Try

Conn = New SqlConnection(Conexion)

Conn.open()

Cmd = New SqlCommand("sp_UsuarioInsert", Conn)

Cmd.CommandType = CommandType.StoredProcedure

'Ap_Pat

Dim pAp_Pat = New SqlParameter("@Ap_Pat", SqlDbType.VarChar, 15)

pAp_Pat.Value = Me.txtAp_Pat.Text

Cmd.Parameters.Add(pAp_Pat)

' Ap_Mat

Dim pAp_Mat = New SqlParameter("@Ap_Mat", SqlDbType.VarChar, 15)

pAp_Mat.Value = Me.txtAp_Mat.Text

Cmd.Parameters.Add(pAp_Mat)

' Nombre

Dim pNombre = New SqlParameter("@Nombre", SqlDbType.VarChar, 15)

pNombre.Value = Me.txtNombre.Text

Cmd.Parameters.Add(pNombre)

' Login

Dim pLogin = New SqlParameter("@Login", SqlDbType.VarChar, 10)

pLogin.Value = Me.txtLogin.Text

Cmd.Parameters.Add(pLogin)

' Password

Dim pPassword = New SqlParameter("@Password", SqlDbType.VarChar, 10)

pPassword.Value = Me.txtPassword.Text

Cmd.Parameters.Add(pPassword)

' ejecuta

Cmd.ExecuteNonQuery()

Catch Err As Exception

Me.lblMensaje.Text = Err.Message ' Tratamiento de Error

Catch Err As SqlException

Me.lblMensaje.Text = Err.Source ' Tratamiento de Error

Finally

Conn.close()

End Try

End Sub



Este es mi Stored Procedure

CREATE PROCEDURE sp_UsuarioInsert
(
@Ap_Pat varchar(15),
@Ap_Mat varchar(15),
@Nombre varchar(15),
@Login varchar(10),
@Password varchar(10)
)
AS
Insert into Tbl_Usuario (Ap_Pat, Ap_Mat, Nombre, Login, Password)
VALUES (@Ap_Pat, @Ap_Mat, @Nombre, @Login, @Password)
GO



Salu2 :-)))

(""'·._.·L.I. Daniel Villa·._.·'"")



Respuesta Responder a este mensaje
#2 Eduardo A. Morcillo [MS MVP VB]
17/12/2005 - 05:07 | Informe spam
Una cosa es NULL y otra cosa es un texto vacio (''). Que un campo de texto
este configurado para no aceptar nulos no significa que no se le pueda poner
como valor un texto vacio. Por otro lado, esta bien que dejes el trabajo de
ciertas cosas al SQL Server, pero la validacion tambien debes hacerla desde
la UI ya que de esa forma te evitas trafico inutil hacia y desde el
servidor.

Eduardo A. Morcillo [MS MVP VB]
http://www.mvps.org/emorcillo
http://mvp.support.microsoft.com/pr...4EF5A4191C
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida