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

Duda sobre DropDownList y consulta Sql

Estas en el tema de Duda sobre DropDownList y consulta Sql en el foro de .NET en Foros del Web. Hola a todos, escribo aqui para solicitar su valiosa ayuda en este foro, Lo que sucede es que soy nuevo en esto del desarrollo web ...
  #1 (permalink)  
Antiguo 01/03/2007, 20:23
Avatar de isch  
Fecha de Ingreso: febrero-2007
Ubicación: En mi casa
Mensajes: 36
Antigüedad: 17 años, 2 meses
Puntos: 0
Duda sobre DropDownList y consulta Sql

Hola a todos, escribo aqui para solicitar su valiosa ayuda en este foro, Lo que sucede es que soy nuevo en esto del desarrollo web en .Net y puesto que apenas estoy comenzano me surgen muchas dudas, que incluso yo mismo conisdero absurdas, pero creo que la mayoria asi comienza. Muchas de las respuestas las encuentro en internet pero otras es mas complicado. Pero bueno mi duda es la siguiente ya no quiero hacerla mas larga jaja:

Quisiera saber si para ejecutar esta consulta es suficiente con el siguiente codigo ya que no hace la insercion en la BD, que es lo que me hace falta ??

Dim ScmdA = "INSERT INTO Empleados VALUES ('++','+nombre+','+direccion+','+telefono+','+valu eDDl+');"

cmd = New SqlDataAdapter(ScmdA, conx)

Segun yo, lo que me faltaba era un cmd.Fill("Empleados"), pero me manda un error:

"Error de sintaxis al convertir el valor varchar '+valueDDl+' para una columna de tipo de datos int "

En todo caso les pongo el codigo completo en abajo para que lo entiendan mejor.

Y me gustaria saber que parametro debo utilizar dentro del DropDownList (en este caso DDlTipo) para asignar una opcion antes de los resultados que arroja la consulta SELECT que lo llenara, ya saben, el clasico "Seleccione una opcion..."

Este es el codigo completo, les agradeceria que me comentaran tambien otros posibles errores y algo sobre el estilo de programacion:

Dim ds As DataSet
Dim conx As SqlConnection = New SqlConnection(ConfigurationSettings.AppSettings("c onx"))
Dim cmd As SqlDataAdapter

Dim nombre As String
Dim apellido As String
Dim telefono As String
Dim Scmd As String
Dim valueDDl As Integer

ds = New DataSet

Scmd = "SELECT PuestoID, Nombre FROM Puestos"
cmd = New SqlDataAdapter(Scmd, conx)
cmd.Fill(ds, "Puestos")

DDlTipo.DataSource = ds.Tables("Puestos").DefaultView
DDlTipo.DataTextField = "Nombre"
DDlTipo.DataValueField = "PuestoID"
DDlTipo.DataBind()

If TBxNombre.Text <> "" And TBxApellido.Text <> "" And TBxTel.Text <> "" And DDlTipo.DataTextField <> "" Then

nombre = TBxNombre.Text
apellido = TBxApellido.Text
telefono = TBxTel.Text
valueDDl = DDlTipo.SelectedValue

Dim ScmdA = "INSERT INTO Empleados VALUES('+ +','+nombre+','+direccion+','+telefono+','+valueDD l+');"
cmd = New SqlDataAdapter(ScmdA, conx)

cmd.Fill(ds, "Empleados")

End If


SALUDOS A TODOS !!!

Les agradezco su valiosa ayuda y tiempo, de antemano.
  #2 (permalink)  
Antiguo 02/03/2007, 12:22
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 2 meses
Puntos: 50
Re: Duda sobre DropDownList y consulta Sql

hola y bienvenido... , antes que nada hay que estructura el code que tienes, vamos por parte.. primero puedes tener un método que se encargue de llenar tu DDL

ejemplo.

Código:
Private Sub BindDropDown ()
Dim ds As DataSet
Dim conx As SqlConnection = New SqlConnection(ConfigurationSettings.AppSettings("c onx"))
Dim cmd As SqlDataAdapter
ds = New DataSet
Scmd = "SELECT PuestoID, Nombre FROM Puestos"
cmd = New SqlDataAdapter(Scmd, conx)
cmd.Fill(ds, "Puestos")

DDlTipo.DataSource = ds.Tables("Puestos").DefaultView
DDlTipo.DataTextField = "Nombre"
DDlTipo.DataValueField = "PuestoID"
DDlTipo.DataBind()

End Sub
y ese lo mandas a llenar en el page load e tu pagina.. ejemplo>

Código:
 Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

            If Not IsPostBack Then
                 BindDropDown ()
            End If

        End Sub
Cita:
Y me gustaria saber que parametro debo utilizar dentro del DropDownList (en este caso DDlTipo) para asignar una opcion antes de los resultados que arroja la consulta
Código:
....
DDlTipo.DataSource = ds.Tables("Puestos").DefaultView
DDlTipo.DataTextField = "Nombre"
DDlTipo.DataValueField = "PuestoID"
DDlTipo.DataBind()
DDlTipo.Items.Insert(0, New ListItem(" [Seleccione Uno]", "-1"))

ya despues tu debes tener un boton para que se haga la insercion donde te puede quedar de la siguiente forma:

Código:
....

If TBxNombre.Text <> "" And TBxApellido.Text <> "" And TBxTel.Text <> "" And  DDlTipo.SelectedValue<> ="-1"Then
nombre = TBxNombre.Text
apellido = TBxApellido.Text
telefono = TBxTel.Text
valueDDl = DDlTipo.SelectedValue

Dim sSQL As String = String.Format("INSERT INTO Empleados VALUES('{0}','{1}','{2}',{3}", nombre, direccion, telefono, valueDDl)
Dim conx As SqlConnection = New SqlConnection(ConfigurationSettings.AppSettings("conx"))
dim oCmd as New SqlClient.SqlCommand(sSQL ,conx )

conx.Open
ocmd.ExecuteNonQuery()
conx.Close()
y listo, esa es la forma simple de hacerlo, ahora que hay otros métodos para hacer inserciones mediante Stored Procedures(SP´s), si se manda la cadena directamente en code (como tu ejemplo) hacerlo mediante parámetros, etc..etc.. hay todavía muchas cosas por ver, te recomiendo que busques informacion de ADO.Net para que conozcas su estructura.

Salu2 y cualquier cosa por aqui andamos.
__________________
Nadie roba nada ya que en la vida todo se paga . . .

Exentrit - Soluciones SharePoint & Net
  #3 (permalink)  
Antiguo 02/03/2007, 17:29
Avatar de isch  
Fecha de Ingreso: febrero-2007
Ubicación: En mi casa
Mensajes: 36
Antigüedad: 17 años, 2 meses
Puntos: 0
Sonrisa Re: Duda sobre DropDownList y consulta Sql

Hola, pues muchas gracias por la bienvenida, me da gusto poder contar con gente especializada dispuesta a ayudar gente ignorante como yo jajajajaja. Bueno la cuestion es esta, aproveche algunas de las recomendaciones que me sugeriste, pero ahora me manda un error que por mas que trato de solucionar, no he podido. No se realmente a que se deba, espero me puedan ayudar de nuevo, estoy seguro que es una tonteria, ojala asi sea.

El error que ahora manda es: "sintaxis incorrecta cerca de '1'.
"


Código PHP:
Imports System.Data
Imports System
.Data.SqlClient

Public Class AgregarEmp
    Inherits System
.Web.UI.Page

    Dim nombre 
As String
    Dim apellido 
As String
    Dim telefono 
As String
    Dim Scmd 
As String
    Dim valueDDl 
As String

    
Private Sub Page_Load(ByVal sender As System.ObjectByVal e As System.EventArgsHandles MyBase.Load
        
        Label6
.Visible False
        Button2
.Visible False

        Dim ds 
As DataSet
        Dim conx 
As SqlConnection = New SqlConnection(ConfigurationSettings.AppSettings("conx"))
        
Dim cmd As SqlDataAdapter


        ds 
= New DataSet

        Scmd 
"SELECT PuestoID, Nombre FROM Puestos"
        
cmd = New SqlDataAdapter(Scmdconx)
        
cmd.Fill(ds"Puestos")

        
DDlTipo.DataSource ds.Tables("Puestos").DefaultView
        DDlTipo
.DataTextField "Nombre"
        
DDlTipo.DataValueField "PuestoID"
        
DDlTipo.DataBind()
        
DDlTipo.Items.Insert(0, New ListItem("Elija una opcion...""-1"))

    
End Sub

    
Private Sub Button2_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles Button2.Click
        Response
.Redirect("index.aspx")
    
End Sub

    
Private Sub Button1_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles Button1.Click

        
If TBxNombre.Text <> "" And TBxApellido.Text <> "" And TBxTel.Text <> "" And DDlTipo.DataTextField <> "-1" Then

            Dim conx 
As SqlConnection = New SqlConnection(ConfigurationSettings.AppSettings("conx"))

            
Label6.Visible True
            Button1
.Enabled False
            Button2
.Visible True

            Dim Icmd 
As SqlCommand

            nombre 
TBxNombre.Text
            apellido 
TBxApellido.Text
            telefono 
TBxTel.Text
            valueDDl 
DDlTipo.SelectedValue

            Dim ScmdA 
As String

            ScmdA 
String.Format("INSERT INTO Empleados VALUES('{0}','{1}','{2}',{3}"nombreapellidotelefonovalueDDl)
            
Icmd = New SqlCommand(ScmdAconx)

            
conx.Open()
            
Icmd.ExecuteNonQuery()
            
conx.Close()

        
End If

    
End Sub
End 
Class 
Bueno eso es todo por el momento.

SALUDOS A TODOS !!!

Les agradezco su valiosa ayuda y tiempo, de antemano.
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 09:24.