• Viernes 8 de Noviembre de 2024, 23:23

Autor Tema:  Tratar Con Valores Integer Nulos  (Leído 1446 veces)

black_hat

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Tratar Con Valores Integer Nulos
« en: Lunes 24 de Septiembre de 2007, 07:56 »
0
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

Javis

  • Nuevo Miembro
  • *
  • Mensajes: 13
    • Ver Perfil
Re: Tratar Con Valores Integer Nulos
« Respuesta #1 en: Martes 25 de Septiembre de 2007, 18:32 »
0
A ver si te entendi bien en el procedimiento almacenado tienes definidos tres casos insert, delete, update no.

Para el delete necesitas el dPcia para borrar la provincia que coincida con ese codigo

Para actualizar lo mismo, lo necesitas para actualizar el registro que coincida con el.

Pero para el insert, no lo necesitas si lo tienes que se autoincremente y como es asi no tiene porque ser nulo, sino cualquier valor,es decir, le puedes dar un 0 o el que quieras ya que no te va a repetir el codigo porque es autoincrementable.

Un saludo

black_hat

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Re: Tratar Con Valores Integer Nulos
« Respuesta #2 en: Miércoles 26 de Septiembre de 2007, 07:09 »
0
Solucionado! con la funcion Va(), anda y no necesito la funcion Ctype, ya que VAL(TextBox1.Text) devuelve un integer. 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