ayuda con un cambio de base de datos

Iniciado por ::: Devil :::, 6 Enero 2012, 22:07 PM

0 Miembros y 1 Visitante están viendo este tema.

::: Devil :::

holas queria pedirles un gran favor es que ando trancado aqui quiero conectarme a mi base de datos en access por que no manejo el sql bien entonces tengo este codigo y esta conectado por medio de sql como haria para cambiarlo mi base de datos esta ubicada asi

C:\WindowsApplication1\WindowsApplication1\Datos.mdb

y la tabla a la cual voy a enlazar el textbox1 se nombre
gracias de antemano

Option Explicit On
Option Strict On

' espacio de nombres para poder acceder al cliente sql
Imports System.Data
Imports System.Data.SqlClient

Public Class Form1

    ' enumeración para las opciones que se usarán
    ' para filtrar con el operador Like
    Enum e_FILTER_OPTION
        SIN_FILTRO = 0
        CADENA_QUE_COMIENCE_CON = 1
        CADENA_QUE_NO_COMIENCE_CON = 2
        CADENA_QUE_CONTENGA = 3
        CADENA_QUE_NO_CONTENGA = 4
        CADENA_IGUAL = 5
    End Enum

    ' cadena de conexión para SQL EXPRESS en modo local
    Private Const cs As String = "Data Source=(local)\SQLEXPRESS;" & _
                                 "Integrated Security=True;" & _
                                 "Initial Catalog=la_base_de_datos"

    'Instanciar el componente BindingSource
    Private BindingSource1 As Windows.Forms.BindingSource = New BindingSource

    Private Sub Form1_Load( _
        ByVal sender As System.Object, _
        ByVal e As System.EventArgs) Handles MyBase.Load


        Try
            ' Inicializar la conexión y abrir
            Using cn As SqlConnection = New SqlConnection(cs)
                cn.Open()

                ' Inicializar DataAdapter indicando el sql para recuperar
                'los registros de la tabla
                Dim da As New SqlDataAdapter("SELECT * FROM la_tabla", cn)
                Dim dt As New DataTable ' crear un DataTable

                ' llenarlo
                da.Fill(dt)

                ' enlazar el DataTable al BindingSource
                BindingSource1.DataSource = dt

                ' agregar las opciones al combobox
                With (ComboBox1)

                    'cargar los items de opciones para filtrar
                    .Items.Add("No filtrar")
                    .Items.Add("Que comience con")
                    .Items.Add("Que No comience con")
                    .Items.Add("Que contenga")
                    .Items.Add("Que No contenga")
                    .Items.Add("Que sea igual")

                    .DropDownStyle = ComboBoxStyle.DropDownList
                    .SelectedIndex = 1
                End With
            End Using
            ' errores
        Catch ex As Exception
            MsgBox(ex.Message.ToString)
        End Try
    End Sub


    Private Sub Aplicar_Filtro()

        ' filtrar por el campo Producto
        ''''''''''''''''''''''''''''''''''''''''''''''''''''
        Dim ret As Integer = Filtrar_DataGridView( _
                                        "Producto", _
                                        TextBox1.Text.Trim, _
                                        BindingSource1, _
                                        DataGridView1, _
                                        CType(ComboBox1.SelectedIndex, e_FILTER_OPTION))

        If ret = 0 Then
            ' si no hay registros cambiar el color del txtbox
            TextBox1.BackColor = Color.Red
        Else
            TextBox1.BackColor = Color.White
        End If
        ' visualizar la cantidad de registros
        Me.Text = ret & " Registros encontrados"

    End Sub

    Function Filtrar_DataGridView( _
        ByVal Columna As String, _
        ByVal texto As String, _
        ByVal BindingSource As BindingSource, _
        ByVal DataGridView As DataGridView, _
        Optional ByVal Opcion_Filtro As e_FILTER_OPTION = Nothing) As Integer

        ' verificar que el DataSource no esté vacio
        If BindingSource1.DataSource Is Nothing Then
            Return 0
        End If

        Try

            Dim filtro As String = String.Empty

            ' Seleccionar la opción
            Select Case Opcion_Filtro
                Case e_FILTER_OPTION.CADENA_QUE_COMIENCE_CON
                    filtro = "like '" & texto.Trim & "%'"
                Case e_FILTER_OPTION.CADENA_QUE_NO_COMIENCE_CON
                    filtro = "Not like '" & texto.Trim & "%'"
                Case e_FILTER_OPTION.CADENA_QUE_NO_CONTENGA
                    filtro = "Not like '%" & texto.Trim & "%'"
                Case e_FILTER_OPTION.CADENA_QUE_CONTENGA
                    filtro = "like '%" & texto.Trim & "%'"
                Case e_FILTER_OPTION.CADENA_IGUAL
                    filtro = "='" & texto.Trim & "'"
            End Select
            ' Opción para no filtrar
            If Opcion_Filtro = e_FILTER_OPTION.SIN_FILTRO Then
                filtro = String.Empty
            End If

            ' armar el sql
            If filtro <> String.Empty Then
                filtro = "[" & Columna & "]" & filtro
            End If

            ' asigar el criterio a la propiedad Filter del BindingSource
            BindingSource.Filter = filtro
            ' enlzar el datagridview al BindingSource
            DataGridView.DataSource = BindingSource.DataSource

            ' retornar la cantidad de registros encontrados
            Return BindingSource.Count

            ' errores
        Catch ex As Exception
            MsgBox(ex.Message.ToString, MsgBoxStyle.Critical)
        End Try

        Return 0

    End Function

    Private Sub txt_Filtro_TextChanged( _
        ByVal sender As System.Object, _
        ByVal e As System.EventArgs) Handles textbox1.TextChanged

        Aplicar_Filtro()

    End Sub
End Class
NI TU NI NADIEN PORDRAN CONMIGO SOY MAS FUERTE QUE LA ENVIDIA.

ESTO ESTA DEDICADO A LOS QUE ME JODEN LA VIDA

seba123neo

ese ejemplo se conecta a SQL Server, solo cambias la cadena de conexion y listo, pero mira este ejemplo, es lo mas facil que podes encontrar:

Conectarse con base de Microsoft Access y Llenar DataGridView

saludos.

La característica extraordinaria de las leyes de la física es que se aplican en todos lados, sea que tú elijas o no creer en ellas. Lo bueno de las ciencias es que siempre tienen la verdad, quieras creerla o no.

Neil deGrasse Tyson

::: Devil :::

#2
si compa lo e hecho asi pero me da error en estas lineas

            ' Inicializar la conexión y abrir
            Using cn As SqlConnection = New SqlConnection(cs)
                cn.Open()

me dice no se a declarado el nombre cs
NI TU NI NADIEN PORDRAN CONMIGO SOY MAS FUERTE QUE LA ENVIDIA.

ESTO ESTA DEDICADO A LOS QUE ME JODEN LA VIDA

::: Devil :::

NI TU NI NADIEN PORDRAN CONMIGO SOY MAS FUERTE QUE LA ENVIDIA.

ESTO ESTA DEDICADO A LOS QUE ME JODEN LA VIDA

fkof

mira yo lo hago asi xD, amm bueno este codigo sirver para  crear la bd, en una ruta y despues conectarte a ella y crear una tabla dentro del mismo bd, amm nada mas estudiate el cod alli esta la cadena de conexion hacia el accses:D

Imports ADOX
Imports System.Data.OleDb
Public Class Form1
    Dim dt As DataTable
    Dim cmd As OleDb.OleDbCommand
    Public DataSet1 As DataSet
    Dim el_patch As String = "C:\bd"
    Dim DatabaseFullPath As String = "C:\bd\hola.mdb"
    Dim sCreateString As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & DatabaseFullPath
    Dim bd As New OleDbConnection(sCreateString)
    Dim objcreatablas As creatabla = New creatabla
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        If Dir(el_patch, vbDirectory) = vbNullString Then
            'Crea la carpeta 
            Call MkDir(el_patch)
        End If

        Dim bAns As Boolean
        If el_patch = vbNullString Then
            Exit Sub
        End If
        If Dir("C:\bd\hola.mdb", vbDirectory) = vbNullString Then
            Dim cat As New ADOX.Catalog()
            Try
                cat.Create(sCreateString)
                bAns = True

                bd.ConnectionString = sCreateString
                bd.Open()

                objcreatablas.creatabla("CREATE TABLE customer" & _
                                        "(Name char(50)," & _
                                        "direccion char(50)," & _
                                        "telefono char(50))")

               
            Catch Excep As System.Runtime.InteropServices.COMException
                bAns = False

            Finally
                cat = Nothing
            End Try


        End If
     
    End Sub
    'DEMO
    '      If CreateAccessDatabase("F:\test.mdb") = True Then
    '           MsgBox("Database Created")
    '      Else
    '           MsgBox("Database Creation Failed")
    '      End If

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        objcreatablas.creatabla(String.Format("insert into customer values('{0}','{1}','{2}')", TextBox1.Text, TextBox2.Text, TextBox3.Text))
    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        bd.Open()

        Dim da As New OleDbDataAdapter("SELECT * FROM customer", bd)
        Dim ds As New DataSet
        da.Fill(ds)
        data.DataSource = ds.Tables(0)
        bd.Close()

    End Sub
End Class