Avatar billede frets Nybegynder
27. februar 2004 - 22:37 Der er 15 kommentarer og
1 løsning

Hvordan finder man posten i db'en?

Jeg er grøn i c#, så hvis der er nogle som kan give mig en lille opskrift på hvordan jeg kan finde mine data i db'en.
Det jeg har er nogle ting, som man kan vælge i en combobox. Disse hentes fra db'en.
Eks:
ID Navn Dit Dat
2  Poul ... ...
3  Børge .. ...
5  Hans ... ...

Hvordan ved jeg at hvis jeg vælger Børge at det er ID 3 den skal hente fra db'en?
Avatar billede schristensen Praktikant
27. februar 2004 - 22:41 #1
hvis der står "Børge" på id 3, så kan du også hente navnet via SelectedItem propertien... så har du et navn du kan søge med i din db..
Avatar billede schristensen Praktikant
27. februar 2004 - 22:44 #2
noget i stil med... SELECT * FROM <tabel> WHERE navn='Børge'
Avatar billede frets Nybegynder
27. februar 2004 - 22:55 #3
Det er jeg godt klar over, men hvis jeg gemmer Børge i nogle andre tabeller og Børge så skal ændres til Hugo opstår der inkonsistens i mine tabeller, derfor ville det være at foretrække hvis jeg kunne finde ID og så gemme det i de forskellige tabeller.
Avatar billede frets Nybegynder
27. februar 2004 - 22:56 #4
Du har også et problem ved at lave en ...WHERE navn = 'Børge' hvis der er flere der hedder Børge.
Avatar billede schristensen Praktikant
27. februar 2004 - 23:02 #5
ok... så giver du hver bruger et unikt id... men når du er igang med at hente fra db, og du vil have hente alle navne... kunne du så ikke lave en klasse som kunne holde f.eks. navn og id for en person. Combobox'en kunne så indeholde instanser af dette person objekt, og når brugeren havde valgt et index, så kunne du bruge SelectedItem, til at få objektet, og derpå spørge efter et id...
Avatar billede schristensen Praktikant
27. februar 2004 - 23:07 #6
public class Person
{
  private string navn;
  private int id;

  public Person( string navn, int id )
  {
    this.navn = navn;
    this.id  = id;
  }

  public override string ToString()
  {
    return this.navn;
  }

  public int GetID()
  {
    return this.id;
  }
}
Avatar billede frets Nybegynder
27. februar 2004 - 23:08 #7
Det havde jeg også overvejet, men kan det ikke lade sig gøre vha. noget dataset?
Avatar billede schristensen Praktikant
27. februar 2004 - 23:11 #8
kan du ikke hente dataene fra dataset'et over i et sådan objekt... tror som sådan ikke du kan bruge dette dataset direkte....
Avatar billede frets Nybegynder
27. februar 2004 - 23:19 #9
Jeg havde håbet at man kunne lave noget i stil med:
thisDataSet.Tables["Dommere"].SelectedRow[1].Row["ID"] og thisDataSet.Tables["Dommere"].SelectedRow[1].Row["Navn"]
Således at SelectedRow svare til mit selectedIndex i combobox'en. Hvis du forstår hvad jeg mener.
Avatar billede schristensen Praktikant
27. februar 2004 - 23:24 #10
det kan du som sådan også godt... når du læser data ud fra db, og sender dem til comboboxen, så komme index'et i comboboxen til at svare til den række i dataset'et - når brugeren har valgt et navn, så tager du blot index, og henter dine data fra dit dataset på den række som svarer til det index.

thisDataSet.Tables["Dommere"].SelectedRow[this.combobox.SelectedIndex].Row["ID"]
Avatar billede frets Nybegynder
27. februar 2004 - 23:27 #11
Problemet er at SelectedRow og Row er noget jeg har digtet for at vise hvordan jeg håbede jeg kunne få noget i retning af.
Avatar billede schristensen Praktikant
27. februar 2004 - 23:27 #12
øjeblik... smider lige noget kode
Avatar billede schristensen Praktikant
27. februar 2004 - 23:42 #13
jeg er ikke helt sikker på hvor du vil hen... men tror jeg havde valgt at lave det sådan her:

thisDataSet.Tables["Dommere"].Rows giver en DataRowCollection tilbage..

en sådan kan bruges i en foreach sætning

foreach( DataRow myRow in thisDataSet.Tables["Dommere"].Rows )
{
  this.combobox.Items.Add( new Person( myRow["Navn"], myRow["ID"] ) );
 
}

Noget i den stil i hvert tilfælde.... ville nok tilpasse det lidt til det kode jeg havde lavet i forvejen....
Avatar billede schristensen Praktikant
27. februar 2004 - 23:43 #14
eller kig lidt rundt under DataSet på http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemdatadatarowmemberstopic.asp


Nå smutter nu - håber jeg har hjulpet bare lidt :-)
Avatar billede frets Nybegynder
27. februar 2004 - 23:44 #15
Jeg prøver at se om jeg kan få skidtet til at virke.
Avatar billede frets Nybegynder
04. marts 2004 - 15:25 #16
Jeg fik det til at virke ved at smide det hele ind i et arraylist og så bruge DataSource, DisplayMember og ValueMember på comboboxen
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
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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