Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   .NET (http://www.forosdelweb.com/f29/)
-   -   Dataset (http://www.forosdelweb.com/f29/dataset-287813/)

Mary_ 11/04/2005 14:39

Dataset
 
Hola, soy nueva en este foro y quería consultaros una duda.
Me gustaría saber como insertar datos en una tabla mediante un formulario en el que se tiene
que registrar el usuario usando dataset. He creado el dataset de la tabla y enlazado los textbox a cada
campo de la tabla de la b.d. pero ahora no sé q código poner para q al dar al botón d envíar se inserten los datos.
Agradecería si m pudierais ayudar.

Un saludo

neivan 12/04/2005 03:30

Para insertar los datos en una tabla d euna bd no andes enlazando textbox con la tabla ni nada de eso

te pongo un ejemplo mio que trabaja con sql server

dim cn as System.Data.SqlClient.SqlConnection
cn=conexion()
cn.open()
DIM cmd AS System.Data.SqlClient.SqlCommand
cmd = New System.Data.SqlClient.sQLCommand()
cmd.Connection = cn
cmd.CommandText = "INSERT INTO PROFESORES (dni,apellidos,nombre,email,direccion"& _
",cp,municipio,telefono1,telefono2,fechanac,especi alidades"& _
",descripcion,provincia) VALUES(@p1,@p2,"& _
"@p3,@p4,@p5,@p6,@p7,@p8,@p9,@p10,@p11,@p12,@p 13)"
cmd.Parameters.Add("@p1", txtDni.text)
cmd.Parameters.Add("@p2", txtapellidos.Text)
cmd.Parameters.Add("@p3", txtnombre.Text)
cmd.Parameters.Add("@p4", txtemail.Text)
cmd.Parameters.Add("@p5", txtDIRECCION.Text)
cmd.Parameters.Add("@p6", ponernulos(txtcp.Text))
cmd.Parameters.Add("@p7", txtMunicipio.Text)
cmd.Parameters.Add("@p8", ponernulos(txttelefono1.Text))
cmd.Parameters.Add("@p9", ponernulos(txttelefono2.Text))
cmd.Parameters.Add("@p10", txtfechanac.Text)
cmd.Parameters.Add("@p11", txtespecialidad.Text)
cmd.Parameters.Add("@p12", txtdescripcion.Text)
cmd.Parameters.Add("@p13", txtprovincia.Text)
try
N=cmd.ExecuteNonQuery()
cn.close()
response.redirect("Inicio.aspx?detalle=" & txtnombre.text & _
" " & txtapellidos.text & ".Isertado")
catch nombre as Exception
label10.visible=true
label10.text="Error al insertar " & nombre.message
end try
cn.close()

ero para todas las bd seria algo mas o menos asi
Lo unico si haces con access oldbCOMMAND en vez de sqlcommand
El dataset es para hacer lecturas y podrias modificar algun registro de lso que has leido.

Pa cualquier cosa...

Mary_ 13/04/2005 02:09

Hola, yo lo tenía d esa forma hecho pero el problema viene cuándo kiero insertar
campos nulos que el usuario no puede registrarse. Solo me deja si el usuario rellena
todos los datos. Según tu código la función q pones como "ponernulos", qué hace?
hace esto q digo?, gracias.

neivan 13/04/2005 02:50

Si tengo una funcion q controla o evita esto

Para los campos que no son oblogatorios,tengo una funcion que si son nulos los convierte a integer ya que esto pasa con los numeros,q da error,te la muestro;

para mostrar datos hago lo contrario por q tb da error si kieres meter un nulo a un texbox...


Private Function quitarnulos(ByVal o As Object) As String
If IsDBNull(o) Then
Return ""
Else
Return CType(o, String)
End If
End FunctioN

Private Function ponernulos(ByVal o As String) As Object
If o = "" Then
Return System.Convert.DBNull
Else
Return CType(o, Integer)
End If
End Function

Mary_ 13/04/2005 08:52

Gracias Neivan, lo probaré.

Mary_ 14/04/2005 03:21

Al final hice las tablas y los procedimientos en sql server en vez d cn Access y ya no tuve ningún problema para insertar campos nulos.

Saludos.

neivan 14/04/2005 03:51

De todas formas deberas controlar por ejemplo si coges los valores de un dataset y te viene en algun campo valor nulo y se lo asignas a un textbox.y al reves yo tb utilizo sqlserver, comprueba haber si a los numericos si no pones nada (nulo) en un textbox te da error al insertar q a mi por lo menos me daba hasta que le puse la funcion.los nchar,las fechas no dan problemas.

Mary_ 14/04/2005 05:20

Pues kizás sea eso, q los campos d esa tabla q no kería q fueran obligatorios son string. No obstante probaré a ponerlos enteros a ver q pasa.

Gracias.


La zona horaria es GMT -6. Ahora son las 07:41.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.