Avatar billede hawk88 Nybegynder
22. maj 2008 - 09:19 Der er 11 kommentarer og
1 løsning

Data fra SQL ind i Combobox (windows app)

Hej Igen

Skal have fyldt nogen data ind i en combobox, jeg har smidt data ind i dropdown i web c#, men kan man ikke lave det helt som det i Windows programmering.

Men jeg skal kunne vælge noget i en combobox, dataen i comboboxen skal komme fra en SQL server, og når jeg vælger en ting i comboboxen skal dataen komme ud til en textbox.

Håber i kan hjælpe.
Avatar billede aaberg Nybegynder
22. maj 2008 - 09:58 #1
Hvis vi går ud fra du har en tabel i databasen som har en id kolonne og en text kolonne. Du vil vise text kolonnen, mens id kolonnen skal virke som identifikator for hver item i ComboBoxen (Hvis der er flere med samme text).

SqlConnection connection = new SqlConnection("Skriv din connectionstring her");

SqlCommand command = connection.CreateCommand();
command.CommandText = "select id, text from myTable";

SqlDataAdapter adapt = new SqlDataAdapter(command);

DataTable table = new DataTable();
adapt.Fill(table);

this.comboBox1.DataSource = table;
this.comboBox1.DisplayMember = "text";
this.comboBox1.ValueMember = "id";
Avatar billede aaberg Nybegynder
22. maj 2008 - 10:04 #2
For at få data ud i en textbox, skal du abonnere på eventet SelectedIndexChanged på ComboBoxen, og tilføje følgende kode i eventhandler metoden.

private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
  this.textBox1.Text = (string)((DataRowView)this.comboBox1.SelectedItem).Row["text"];
}
Avatar billede hawk88 Nybegynder
22. maj 2008 - 10:25 #3
Mange tak igen.

Men jeg får fejl på:

this.textBox1.Text = (string)((DataRowView)this.comboBox1.SelectedIndex).Row["film"];

"Cannot convert type 'int' to 'System.Data.Datarowview'
Avatar billede Syska Mester
22. maj 2008 - 10:45 #4
burde noget ala:
this.textBox1.Text = comboBox1.SelectedItem.Text;

Ikke kunne være det ... selvf måske lige teste på om der reelt set også er et item der er selected.

// oUT
Avatar billede Syska Mester
22. maj 2008 - 10:46 #5
hawk:
Du har skrevet SelectedIndex, men han bruger SelectedItem :-P
Avatar billede hawk88 Nybegynder
22. maj 2008 - 10:58 #6
Godt set. Det virker perfekt nu.
Avatar billede hawk88 Nybegynder
22. maj 2008 - 12:03 #7
Hvis jeg nu skal lave denne:

this.textBox1.Text = (string)((DataRowView)this.comboBox1.SelectedItem).Row["text"];

Og det er et tal der skal ind, hvordan gør jeg så det?

Vil bare gerne have hente et tal ud fra checkboxen til en textbox.
Avatar billede aaberg Nybegynder
22. maj 2008 - 12:32 #8
Hvis du har et tal du skal vise i en textbox, kan du konvertere tallet til en string ved at kalde ToString() metoden.

int tal = 5;
textbox1.Text = tal.ToString();

Hvis du har en textbox med et tal i, og skal have dette tal ind i en integer variable, bliver du nød til at konvertere teksten til et tal. Det kan gøres på følgende måde:

int tal = int.Parse(textBox1.Text);
Avatar billede hawk88 Nybegynder
22. maj 2008 - 14:33 #9
Tilføjede bare Tostring på her:
this.textBox1.Text = (string)((DataRowView)this.comboBox1.SelectedItem).Row["text"];

Så det blev sådan her:

this.textbox1.Text = (string)((DataRowView)this.comboBox1.SelectedItem).Row["text"].ToString();
Avatar billede aaberg Nybegynder
22. maj 2008 - 15:37 #10
I dette tilfælde behøver du ikke at caste til en string. Du kan altså nøjes med dette:
this.textbox1.Text = ((DataRowView)this.comboBox1.SelectedItem).Row["text"].ToString();
Avatar billede hawk88 Nybegynder
22. maj 2008 - 19:02 #11
Okay, trykker på accepter hvor dit navn står, men der sker intet.
Avatar billede aaberg Nybegynder
27. maj 2008 - 22:24 #12
Prøv igen, nu ved du jo hvordan det gøres :-)
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