---
title: "hämta från databasen"
type: "forum-thread"
url: "https://www.webforum.nu/amne/dotnet/161637-hämta-från-databasen"
topic: ".NET"
topic_url: "https://www.webforum.nu/amne/dotnet"
author: "Vinnaren"
published: "2007-06-17T15:15:36.000Z"
updated: "2007-06-18T15:47:16.000Z"
replies: 4
views: 409
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/dotnet/161637-hämta-från-databasen"
---

# hämta från databasen

## #1 — Vinnaren, 2007-06-17T15:15Z

Skulle behöva hjälp med att hämta ut från databasen. Har hittills följande kod:

```
    Const sql1 = "Select Company FROM Companies"
    Const sql2 = "Select URL address, Phone, Company FROM Companies"
    Dim conString As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\databas.mdb"
    Dim conn As OleDb.OleDbConnection = New OleDb.OleDbConnection(conString)
    Dim objDataSet As DataSet = New DataSet()
    Dim objDataAdapter As OleDb.OleDbDataAdapter

    Private Sub myData(ByVal SQLn As String)
        objDataSet = New DataSet()
        conn = New OleDb.OleDbConnection(conString)
        conn.Open()
        objDataAdapter = New OleDb.OleDbDataAdapter(SQLn, conn)
        objDataAdapter.Fill(objDataSet, "Companies")
        conn.Close()
    End Sub

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        myData(sql1)
        cbNamn.DataSource = objDataSet.Tables("Companies")
        cbNamn.DisplayMember = "Company"
    End Sub

    Private Sub cbNamn_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cbNamn.SelectedIndexChanged
        myData(sql2)

        If Me.cbNamn.SelectedIndex <> -1 Then
            txtTelefon.Text = objDataSet.Companies.Rows(cbNamn.SelectedIndex)("Phone").ToString
            txtMail.Text = objDataSet.Companies.Rows(cbNamn.SelectedIndex)("URLaddress").ToString
        Else
            Exit Sub
        End If

    End Sub
```

 

Det är när man trycker på cbNamn (ComboBox) som det ska hämtas från databasen. Som koden ser ut nu, så gnäller den följande:

Companies' is not a member of 'System.Data.DataSet'

på raderna:

```
txtTelefon.Text = objDataSet.Companies.Rows(cbNamn.SelectedIndex)("telefon").ToString
  
txtMail.Text = objDataSet.Companies.Rows(cbNamn.SelectedIndex)("email").ToString
```

 

Hur löser jag detta??

Tacksam för all hjälp   :stud

Permalänk: https://www.webforum.nu/p/161637

## #2 — Josef, 2007-06-17T17:58Z

```
txtTelefon.Text = objDataSet.Tables("Companies").Rows(cbNamn.SelectedIndex)("telefon").ToString()

samt

txtMail.Text = objDataSet.Tables("Companies").Rows(cbNamn.SelectedIndex)("email").ToString()
```

Permalänk: https://www.webforum.nu/p/1993935

## #3 — Vinnaren, 2007-06-18T07:07Z

ok, tack. får nu följande felmeddelande:

Syntaxfel (operator saknas) i frågeuttrycket 'URL address'.

på raden:

```
objDataAdapter.Fill(objDataSet, "Companies")
```

  i 

```
    Private Sub cbNamn_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cbNamn.SelectedIndexChanged
```

 

```
    Const sql1 = "Select Company FROM Companies"
    Const sql2 = "Select URL address, Phone, Company FROM Companies"
    Dim conString As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\databas.mdb"
    Dim conn As OleDb.OleDbConnection = New OleDb.OleDbConnection(conString)
    Dim objDataSet As DataSet = New DataSet()
    Dim objDataAdapter As OleDb.OleDbDataAdapter

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

        objDataSet = New DataSet()
        conn = New OleDb.OleDbConnection(conString)
        conn.Open()
        objDataAdapter = New OleDb.OleDbDataAdapter(sql1, conn)
        objDataAdapter.Fill(objDataSet, "Companies")
        conn.Close()

        cbNamn.DataSource = objDataSet.Tables("Companies")
        cbNamn.DisplayMember = "Company"
    End Sub

    Private Sub cbNamn_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cbNamn.SelectedIndexChanged

        objDataSet = New DataSet()
        conn = New OleDb.OleDbConnection(conString)
        conn.Open()
        objDataAdapter = New OleDb.OleDbDataAdapter(sql2, conn)
        objDataAdapter.Fill(objDataSet, "Companies")
        conn.Close()

        If Me.cbNamn.SelectedIndex <> -1 Then
            txtTelefon.Text = objDataSet.Tables("Companies").Rows(cbNamn.SelectedIndex)("telefon").ToString()
            txtMail.Text = objDataSet.Tables("Companies").Rows(cbNamn.SelectedIndex)("email").ToString()
        Else
            Exit Sub
        End If

    End Sub
```

 

Hur löser jag detta??   :q

Permalänk: https://www.webforum.nu/p/1994032

## #4 — Josef, 2007-06-18T15:13Z

Du har glömt ett ',' (komma) i SQL-satsen.  Borde vara: Const sql2 = "Select URL, address, Phone, Company FROM Companies"

Sedan förstår jag inte varför du hämtar samma info från databasen igen. Tycker att du istället borde hämta allting på en gång, och sedan bara plocka ut info:n ur datasetet när man har valt en post i cbNamn.

Egentligen skulle cbNamn_SelectedIndexChanged kunna se ut så här:

```
Private Sub cbNamn_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cbNamn.SelectedIndexChanged
    If Me.cbNamn.SelectedIndex <> -1 Then
        txtTelefon.Text = objDataSet.Tables("Companies").Rows(cbNamn.SelectedIndex)("telefon").ToString()
        txtMail.Text = objDataSet.Tables("Companies").Rows(cbNamn.SelectedIndex)("email").ToString()
    End If
End Sub
```

Permalänk: https://www.webforum.nu/p/1994145

## #5 — Vinnaren, 2007-06-18T15:47Z

tack Josef, nu funkar det   :bire

Permalänk: https://www.webforum.nu/p/1994155

---

Tråden på webben: https://www.webforum.nu/amne/dotnet/161637-hämta-från-databasen
