Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Hur får jag comboboxen laddad

Postades av 2004-10-04 14:59:29 - Joakim Dörner, i forum vb.net, Tråden har 14 Kommentarer och lästs av 990 personer

Hej
Jag har en sub som ser ut enligt nedan. Vad jag vill är att få in både handläggare och id i comboboxen. Som det är nu kommer bara handläggare in. Hur får jag till id så att jag kan läsa ut det och spara till db.
Datasetet innehåller allt.

Private Sub LaddaCombo()
Dim dsHandlaggareSCB As DataSet

dsHandlaggare = Server.Facade.UL.GetHandlaggare()

cboHandlaggare.Items.Clear()
cboHandlaggare.Text = ""

If dsHandlaggare.Tables(0).Rows.Count > 0 Then
' Fyller drop down kontrollen
Dim i As Integer
For i = 0 To dsHandlaggare.Tables(0).Rows.Count - 1
'Lägger till handläggare
cboHandlaggare.Items.Add(dsHandlaggare.Tables(0).Rows(i).Item("IdAnvandare",DataRowVersion.Current))
Next i
Else
cboHandlaggare.Items.Add("Det finns inga handläggare")
End If

cboHandlaggare.SelectedIndex = 0

End Sub


Svara

Sv: Hur får jag comboboxen laddad

Postades av 2004-10-04 15:31:28 - stefan ljungstedt

lägg till en ny combobox som du döljer och väljer samma indexplats som vald handläggare. Kanske en fulfix men...

STefan


Svara

Sv: Hur får jag comboboxen laddad

Postades av 2004-10-06 00:34:52 - Andreas Håkansson

Joakim,

Har du läsa något om <b>databinding</b> i .NET? Om inte så rekommonderar jag dig att göra det. Nu säger du inte om detta är Web eller Winform, då ComboBox kontrollen beter sig lite olika i de båda miljöerna. Jag kommer utgå ifrån att det är i WinForm.

Men innan vi kommer dit. Varför returnerar </b>Server.Facade.UL.GetHandlaggare()</b> ett <b>DataSet</b> istället för en <b>DataTable</b> eller kanske en <b>DataReader</b>? Ett dataset är lite overkill om du bara skall ha en tabell, och en tabell är lite overkill (samt lite långsammare) än en datareader (t.ex SqlDataReader) om du bara skall presentera informationen.

Hur som helst. När du har din datakälla (dsHandlaggare i ditt fall) så binder du denna till din kontroll genom att göra följande

If dsHandlaggare.Tables(0).Rows.Count > 0 Then
  With cboHandlaggare
    .DataSource = dsHandlaggare.Tables(0)
    .DisplayMember = "namnet_på_din_text_kolumn"
    .ValueMember = "namnet_på_din_id_kolumn"
  End With
Else
  cboHandlaggare.Items.Add("Det finns inga handläggare")
End If


Värdet i den kolumnen som du anger som <b>DisplayMember</b> kommer visas i din kontroll, mendans värdet som du anger som <b>ValueMember</b> kommer vara ett associerat värde till den visade texten för varje elment i kontrollen (i ditt fall varje handläggares id).

Du kan sen använda dig av cboHandlaggare<b>.SelectedValue</b> för att få reda på det associerade värdet till den valda posten. Observera att SelectedValue returnerar datatypen <b>Object</b> så du får konvertera denna till t.ex en int med hjälp av <b>CInt, CType, DirectCast</b> eller t.ex <b>Convert.ToInt32</b> metoden.


Svara

Sv: Hur får jag comboboxen laddad

Postades av 2004-10-06 08:18:54 - Johan Olsson

Tjena

Måste du inte köra typ
<code>
.bind()
</code>
också ?


/Johan


Svara

Sv: Hur får jag comboboxen laddad

Postades av 2004-10-06 08:46:48 - Andreas Håkansson

Inte i WinForm, som jag skrev att jag utgick ifrån. Arbetar man med WebForm så måste man anropa

  .DataBind()


Svara

Sv: Hur får jag comboboxen laddad

Postades av 2004-10-06 11:46:02 - Johan Olsson

När binds den då?

Får väl börja med WinForm nån dag...

/Johan


Svara

Sv: Hur får jag comboboxen laddad

Postades av 2004-10-06 15:48:32 - Joakim Dörner

Vi använder en db komponent som returnerar dataset valet att få en datatabel eller reader finns ej ännu kommer troligen. Den är ny.


Provar ditt exempel men det funkar inte. Får detta fel.

"Specified argument was out of the range of valid values,
Parameter name: "0" is not a valid value for "index"."


Svara

Sv: Hur får jag comboboxen laddad

Postades av 2004-10-06 17:23:51 - Andreas Håkansson

Visa kod...


Svara

Sv: Hur får jag comboboxen laddad

Postades av 2004-10-07 11:10:18 - Joakim Dörner

Lite kod

Private Sub LaddaCombo()
Dim dsHandlaggare As DataSet

dsHandlaggare = Server.Facade.UL.GetHandlaggare()

cboHandlaggare.Items.Clear()
cboHandlaggare.Text = ""

If dsHandlaggare.Tables(0).Rows.Count > 0 Then
With cboHandlaggare
.DataSource = dsHandlaggare.Tables(0)
.DisplayMember = "Namn"
.ValueMember = "IdAnvandare"
End With
Else
cboHandlaggare.Items.Add("Det finns inga handläggare")
End If

cboHandlaggare.SelectedIndex = 0

End Sub


Svara

Sv: Hur får jag comboboxen laddad

Postades av 2004-10-07 12:13:01 - Andreas Håkansson

Och på vilken av dessa rader smäller den ? Det är inte helt otänk bart att det är <b>dsHandlaggare.Tables(0).Rows.Count</b> som det blir fel på.. prova att skriva ut <b>dsHandlaggare.Tables.Count</b> för att se att du verkligen har någon tabell.

Du kan även prova att ändra till

With cboHandlaggare 
   .DisplayMember = "Namn" 
   .ValueMember = "IdAnvandare" 
   .DataSource = dsHandlaggare.Tables(0)
End With 


Svara

Sv: Hur får jag comboboxen laddad

Postades av 2004-10-07 13:42:29 - Joakim Dörner

Verkar vara denna som smäller. Men när man klickar OK på felmeddelandet så startar allt upp och comboboxen är laddad.

.DataSource = dsHandlaggare.Tables(0)

/Joakim


Svara

Sv: Hur får jag comboboxen laddad

Postades av 2004-10-07 14:04:10 - Andreas Håkansson

Joakim,

Sätt en brytpunkt (breakpoint) på raden med som innehåller <b>Dim dsHandlaggare As DataSet</b> dvs. den första i metoden och stega dig sen igenom med hjälp av F10 för att se exakt vilken rad felet inträffar.


Svara

Sv: Hur får jag comboboxen laddad

Postades av 2004-10-07 14:40:03 - Joakim Dörner

Det är raden som jag sa ovan som inte funkar. Men den laddar boxen efter meddelandet. Skall det vara en vanlig combobox som klarar av det. Jag har denna kod som jag kör nu lite ful kod men det funkar.

Private Sub LaddaCombo()
Try
Dim dsHandlaggareSCB As DataSet

'Sätter om muspekaren till timglas
Cursor.Current = Cursors.WaitCursor

dsHandlaggareSCB = Server.Facade.UL.GetHandlaggareSCB()

cboHandlaggareSCB.Items.Clear()
cboHandlaggareSCB.Text = ""
cboIdAnvandare.Items.Clear()
cboIdAnvandare.Text = ""

If dsHandlaggareSCB.Tables(0).Rows.Count > 0 Then
' Fyller drop down kontrollen
Dim i As Integer
For i = 0 To dsHandlaggareSCB.Tables(0).Rows.Count - 1
cboHandlaggareSCB.Items.Add(dsHandlaggareSCB.Tables(0).Rows(i).Item("Namn", DataRowVersion.Current))
cboIdAnvandare.Items.Add(dsHandlaggareSCB.Tables(0).Rows(i).Item("IdAnvandare", DataRowVersion.Current))
Next i
Else
cboHandlaggareSCB.Items.Add("Det finns inga handläggare")
End If
'If dsHandlaggareSCB.Tables(0).Rows.Count > 0 Then
' With cboHandlaggareSCB
' .DisplayMember = "Namn"
' .ValueMember = "IdAnvandare"
' .DataSource = dsHandlaggareSCB.Tables(0)
' End With
'Else
' cboHandlaggareSCB.Items.Add("Det finns inga handläggare")
'End If

cboHandlaggareSCB.SelectedIndex = 0

Catch ex As Exception

'Visar felmeddelande
MessageBox.Show(ex.Message())

Finally

'Återställer muspekare
Me.Cursor = System.Windows.Forms.Cursors.Default

End Try
End Sub


Svara

Sv: Hur får jag comboboxen laddad

Postades av 2004-10-07 14:52:39 - Andreas Håkansson

Tja,

Jag hade inte kört koden alls så som du fått det att fungera, utan hade istället kontrollerat datasetet (och övriga involverade variabler) i debuggern när du kör och hittat anledningen till felet. Hinner inte sätta mig in mer just nu utan får isf återkommer senare.


Svara

Sv: Hur får jag comboboxen laddad

Postades av 2004-10-07 14:55:37 - Joakim Dörner

Ja det vore bättre att få din kod att funka skall se vad jag kan göra får behålla den andra så det fungerar så länge.
Tack för hjälpen.

/Joakim


Svara

Nyligen

  • 21:41 Automotive Services UK
  • 20:44 Erfarenhet av CBD-olja mot sömnpro
  • 12:13 Sex Dolls for Sale
  • 19:42 Online Casinos for Haitian Players
  • 19:38 Rekommendera något intressant
  • 19:13 Международная перевозка грузов
  • 00:01 DL Van Tuning | Exclusive Body Kit
  • 12:08 Indian casino

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 882
27 965
271 776
728
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies