none
Errores varios. RRS feed

  • Pregunta

  • Hola, necesito algo de ayudita con unos problemas..

    1) Estoy queriendo cargar datos de 2 tablas distintas y nose como hacerlo, quisiera que me expliquen como.. Leí que había que insertarse los datos por separado, pero no logro dar con el código.

    Public Sub grabarCliente(ByVal al As Clientes)
            Dim sel As String
            Try
                sel = "INSERT INTO Clientes, Domicilios" & _
                    "(DNI, Apellido, Nombre, Calle, Numero, Barrio, Localidad, Provincia) " & _
                    "VALUES ('" & _DNI & "','" & _
                      _Apellido & "','" & _
                      _Nombre & "','" & _
                      _Calle & "'," & _Numero & " " & _
                      _Barrio & "','" & _Localidad & "','" & _
                      _provincia & "')"
                com.CommandText = sel
                com.ExecuteNonQuery()
            Catch ex As Exception
                MsgBox(ex.Message, MsgBoxStyle.Critical, "Error")
            End Try
        End Sub

    Esto es lo que tengo, también probé con and (INSERT INTO Clientes and Domicilios) y tampoco obtuve resultados..

    2)Necesito un botón para buscar una tupla por DNI y me da error de conversión a tipo integer.

    Este es el código del botón. (FORM Cliente)

    Private Sub btnBuscardni_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnBuscarDNI.Click
            ds = al.CargaGrilla(txtDNI.Text)
            DataGridView1.DataSource = ds.Tables(0)
        End Sub

    También coloque en ds el valor de txtDNI como tipo de dato entero pero nada.. así lo coloqué: ds = al.CargaGrilla(CInt(txtDNI.Text)) pero no funcionó.

    Y la función CargaGrilla (Modulo Clientes)

    Public Function CargaGrilla() As DataSet
            da = New SqlDataAdapter("select * from Clientes", con)
            ds = New DataSet
            dt = New DataTable
            da.Fill(ds)
            'End Try
            Return ds

        End Function
        Public Function CargaGrilla(ByVal DNI As Integer) As DataSet
            da = New SqlDataAdapter("select * from Clientes where DNI = ' & DNI & '", con)
            ds = New DataSet
            Try
                da.Fill(ds)
            Catch ex As Exception
                MsgBox(ex.Message, MsgBoxStyle.Critical, "Error")
            End Try
            Return ds
        End Function

    DEsde ya, muchas gracias.




    miércoles, 12 de junio de 2013 3:34

Todas las respuestas

  • no puedes hacer esto

    sel = "INSERT INTO Clientes, Domicilios" & _

    son dos instrucciones las que debes ejecutar, ademas que debes usar parametros

    Public Sub grabarCliente(ByVal al As Clientes)
    	Dim sel As String
    	Try
    		Dim sel As String = "INSERT INTO Clientes " & _
    							"(DNI, Apellido, Nombre) " & _
    							"VALUES (@dni, @apellido, @nombre)"
    		Dim com As New SqlCommand(sel, conn)
    		com.Parameters.AddWithValue("@dni", al.DNI)
    		com.Parameters.AddWithValue("@apellido", al.Apellido)
    		com.Parameters.AddWithValue("@nombre", al.Nombre)
    		
    		com.ExecuteNonQuery()
    		
    		Dim sel2 As String = "INSERT INTO Domicilios " & _
    					"(Calle, Numero, Barrio, Localidad, Provincia) " & _
    					"VALUES (@Calle, @Numero, @Barrio, @Localidad, @Provincia)"
    		Dim com2 As New SqlCommand(sel, conn)
    		com2.Parameters.AddWithValue("@Calle", al.Calle)
    		com2.Parameters.AddWithValue("@Numero", al.Numero)
    		com2.Parameters.AddWithValue("@Barrio", al.Barrio)
    		com2.Parameters.AddWithValue("@Localidad", al.Localidad)
    		com2.Parameters.AddWithValue("@Provincia", al.Provincia)
    		
    		com2.ExecuteNonQuery()
    
    	Catch ex As Exception
    		MsgBox(ex.Message, MsgBoxStyle.Critical, "Error")
    	End Try
    End Sub

    define las variables locales a los metodos y asigna al comando el objeto de conexion

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    miércoles, 12 de junio de 2013 3:49
  • Necesito un botón para buscar una tupla por DNI y me da error de conversión a tipo integer.

     Public Function CargaGrilla(ByVal DNI As Integer) As DataTable
     
    	Try
    		Dim query As String = "select * from Clientes where DNI = @dni"
    		Dim cmd As New SqlCommand(query, con)
    		cmd.Parameters.AddWithValue("@dni", DNI)
    
    		Dim da As New SqlDataAdapter(cmd)
    		Dim dt New DataTable
    		da.Fill(dt)
    		
    		Return dt
    		
    	Catch ex As Exception
    		MsgBox(ex.Message, MsgBoxStyle.Critical, "Error")
    	End Try
    
    End Function

    vuelvo a remarcar que uses parametros

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    miércoles, 12 de junio de 2013 3:53