Visual Basic.NET - Tratar con valores integer nulos.

 
Vista:

Tratar con valores integer nulos.

Publicado por pancho (9 intervenciones) el 24/09/2007 07:08:09
Hola gente, mi problema es el siguiente. Tengo un procedimiento almacenado que hace el ABM (alta, baja, modificacion) de provincias, el procedimiento esta parametrizado, los parametros son, Accion, idPcia, Nombre. Si recibe accion = 'a' realiza una alta, ya se imaginan que tiene que recibir para una baja y una modif ...jaja Cuando realizo una baja o una modificacion no hay problemas, por ejemplo una baja o una modif podria ser asi

Accion = 'm'
dPcia= 1
Nombre = 'Corrientes'

Lo que modificaria el nombre de la provincia con id=1 a Corrientes.

el problema es cuando quiero hacer una alta. ya que idPcia en mi base de datos no puede ser Null.
Lo soluciono supuestamente con esto
New System.Nullable(Of Integer)(CType(txtIdPcia.Text, Integer))

Pero me da el siguiente error.
La conversion de la cadena "" en el tipo integer no es valida.
Pero entonces como puedo hacer para dar de alta una provincia, sin pasarle el parametro idPcia, ya que en mi base de datos lo tengo como autoincrement.
El codigo completo es el siguiente

Private Sub btnAceptar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAceptar.Click
Try

Me.provinciasAbmTableAdapter.Fill(Me.ProvinciasForm.provinciasAbm, txtAccion.Text, New System.Nullable(Of Integer)(CType(txtIdPcia.Text, Integer)), txtNombre.Text)
Catch ex As System.Exception
System.Windows.Forms.MessageBox.Show(ex.Message)
End Try
End Sub

Desde ya muchas gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Tratar con valores integer nulos.

Publicado por OliBeer (391 intervenciones) el 24/09/2007 15:56:17
Si IdPcia es autoincrementable, no tienes porqué mandarle un valor, el SQL toma el siguiente valor en la tabla para insertarlo, tú solo le tendrías que mandar Accion y Nombre.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Tratar con valores integer nulos.

Publicado por Harold V. (411 intervenciones) el 24/09/2007 21:34:59
Hola:
Solo resaltare que te falto colocar el Val(textbox1.text)

CType(Val(TextBox1.Text), Integer)

de esta manera si el textbox esta vacio, te devolvera 0, y evitaras el error que te aparece.....
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Tratar con valores integer nulos.

Publicado por pancho (9 intervenciones) el 26/09/2007 06:30:46
Muchas gracias, con el Va() si anda y no necesito la funcion Ctype, ya que VAL(TextBox1.Text) devuelve un integer, asique ya no tengo que usar ninguna otra funcion de conversion mas...Igualmente ya lo hice de otra manera con un comboBox para seleccionar una provincia, que me despliegue las ciudades de esa provincia, por si a alguien le interesa el Codigo de lo que acabo de comentar es el siguiente.

Me.ClienteabmTableAdapter.Fill(Me.ClienteDS.clienteabm, "a", Me.idCliente, Me.ApellidoTextBox.Text, Me.NombreTextBox.Text, Me.DniTextBox.Text, Me.DirTextBox.Text, Me.TelTextBox.Text, Me.CeluTextBox.Text, Me.EmailTextBox.Text, Me.cmbPcia.SelectedValue, Me.cmbCiudad.SelectedValue)

me.idCliente es una variable que le asigno el idCliente desde otro formulario.
Eso si tuve que cambiarle algunas propiedades del comboBox, y poner Ciudad y Provincias en el mismo dataSet. SAludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Tratar con valores integer nulos.

Publicado por Walter (1 intervención) el 13/11/2007 04:33:22
no tendrias que aplicar un metodo llamado Convert to string o una cosa asi?

y declarar todo como un string
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar