Avatar billede joemoz Nybegynder
23. februar 2010 - 14:12 Der er 3 kommentarer

SQL til data table

Jeg har en funktion der henter data fra en tekstfil og genererer et datasæt. Jeg kunne godt tænke mig at hente data direkte fra SQL-serveren, i stedet for en eksporteret, kommasepareret fil. Kan det lade sig gøre på en relativt let måde?

Her er den nuværende funktion:

Public Function dinfunktion() As System.Data.DataSet
                      Dim csvPath As String = "c:\semikolonfil.txt"
        Dim myDataSet As System.Data.DataSet = New System.Data.DataSet()

        Dim myDataTable As System.Data.DataTable = New System.Data.DataTable("DataTabel")

        Dim myDataColumn As System.Data.DataColumn

        ' 1. kolonne
        myDataColumn = New System.Data.DataColumn("CPRnr")
        myDataColumn.DataType = System.Type.GetType("System.String")
        myDataTable.Columns.Add(myDataColumn)

        ' 2. kolonne
        myDataColumn = New System.Data.DataColumn("Navn")
        myDataColumn.DataType = System.Type.GetType("System.String")
        myDataTable.Columns.Add(myDataColumn)

        ' 3. kolonne
        myDataColumn = New System.Data.DataColumn("Fag")
        myDataColumn.DataType = System.Type.GetType("System.String")
        myDataTable.Columns.Add(myDataColumn)

        Try
            Using sr As System.IO.StreamReader = New System.IO.StreamReader(csvPath, New System.Text.UTF7Encoding())
                While (Not sr.EndOfStream)
                    Dim line As String

                    line = sr.ReadLine()
                    Dim lineArr As String() = line.Split(";")

                    Dim myDataRow As System.Data.DataRow = myDataTable.NewRow()
                    myDataRow("CPRnr") = lineArr(0)
                    myDataRow("Navn") = lineArr(1)
                    myDataRow("Fag") = lineArr(2)

                    myDataTable.Rows.Add(myDataRow)
                End While

            End Using
        Catch ex As Exception
            Me.Close()
            End
        End Try

        myDataSet.Tables.Add(myDataTable)
        dinfunktion = myDataSet
    End Function
Avatar billede arne_v Ekspert
24. februar 2010 - 02:48 #1
Dim con As XxxConnection = New XxxConnection(constr)
con.Open
Dim da As XxxDataAdapter = New XxxDataAdapter("SELECT * FROM dintabel", con)
Dim ds As DataSet = New DataSet
da.Fill(ds, "dintabel")
Avatar billede peerlarsen Praktikant
24. februar 2010 - 07:59 #2
Hej.

Her er et lidt mere fyldigt svar:

Imports System.Data.SqlClient

Dim strConn as string = "Data Source=<din MSSql server>;Initial_ Catalog=<dataBaseNavn>;Integrated_ Security=False;Uid=<brugerId>;Pwd=<password>"

Dim strTabel As String = "tblKontaktPersoner"
Dim conn As SqlConnection
Dim ds As New DataSet
Dim daTabs As SqlDataAdapter
Dim strSQL As String
Dim c As Int32

conn = New SqlConnection(strConn)

strSQL = "Select * FROM tblData ORDER BY navn ASC"

daTabs = New SqlDataAdapter(strSQL, conn)
daTabs.Fill(ds, strTabel)

For c = 0 To ds.Tables(strTabel).Rows.Count - 1
      With ds.Tables(strTabel).Rows(c)

        strFornavn = .Item("navn").ToString
        strEfternavn = ""
        strPostnr = .Item("postnr").ToString
        strBy = .Item("city").ToString
        strAdresse = .Item("adresse").ToString
        strAdresse2 = .Item("adresse2").ToString

      End With
Next c

ds.Clear()

conn.Close()
ds.Clear()

Du bør nok læse noget mere om emnet, da det er en helt verden for sig selv, men ovenstående burde da sætte dig lidt i gang.
Avatar billede arne_v Ekspert
26. april 2010 - 03:51 #3
joemoz ?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester





CIO
Sådan tager top-CIO Pernille Geneser livtag med 40 år gamle it-systemer i Stark Group med 10.000 medarbejdere