Gå til innhold

C#: [Delvis løst] Combobox og Datasource / bindinglist mot SQL


Anbefalte innlegg

Hei!

 

Ta forbehold om skrivefeil/amatørfeil. Helt blank på dette temaet, så kan hende jeg blander fagutrykk. Ihvertfall...

 

 

Lager en kontaktliste/adresseliste.

 

Brukte først accdb(Access Database) for å lage en fil. Virket som at det var en god ide for å lett kunne koble sammen db'en og comboboxen, til tross for at jeg aldri har vært borti Access før.

 

Etter å ha konfigurert datasource og bindinglist kunne man ved hjelp av Comboboxen velge et navn. Når man valgte et navn ble personens telefonnummer vist umiddelbart i en richTextBox som lå under. Veldig funksjonelt og raskt.

 

Problemet oppstod når jeg skulle legge inn nye values i access-fila. Etter VELDIG mye knot og prøvelse fant jeg ut at jeg skulle drite i access og gå over til MySQL siden vi har hatt en del om det på skolen før.

 

Det jeg sliter med nå er ganske enkelt; der hvor jeg før kunne legge inn Access-database fila (.accdb), vil jeg nå legge inn MySQL-databasen min. Kjører en lokal server/database på localhost (3306), men det finnes ingen mulighet for å koble sammen comboboxen og MySQL-databaser som som kjøres lokalt. (Såvidt jeg kan se.)

 

Er det noen som har noe tilbakemelding angående dette problemet?

 

Kan hende det ble litt uklart, så still gjerne spørsmål. Skal prøve å svare så godt jeg kan.

 

Med vennlig hilsen,

Lasse.

Endret av Niggorex
Lenke til kommentar
Videoannonse
Annonse

Har egentlig aldri gjort det før, men her fant jeg kjapt en ledetråd som løser problemet ditt (asp.net løsning):

 

http://asp.net-tutor...ql/databinding/

 

Du fyller OdbcDataReader med de dataene du skal databinde og vil tro.

 

-

 

try {
using (OdbcConnection connection = new OdbcConnection(ConfigurationManager.ConnectionStrings["MySQLConnStr"].ConnectionString)) {
	connection.Open();
	using (OdbcCommand command = new OdbcCommand("SELECT id, name FROM test_users", connection))
	using (OdbcDataReader dr = command.ExecuteReader()) {
		myComboBox.DataSource = dr;
		myComboBox.DisplayMember = "name";
		dr.Close();
	}
	connection.Close();
}
}
catch (Exception ex) {
System.Diagnostics.Debug.Write("An error occured: " + ex.Message);
}

-

Endret av wolf5
Lenke til kommentar
  • 2 uker senere...

Fant en løsning som holder til mitt bruk. Gav opp combobox, og lagde en søkefunksjon istedenfor:

 

    private void button1_Click(object sender, EventArgs e)
    {
	    {
		    String myconnectionstring = "Database=test;Data Source=localhost;User=root;Password=Password";
		    MySqlConnection dbconn = new MySqlConnection(myconnectionstring);
		    dbconn.Open();
		    String sql = "select * from tabell WHERE Fornavn LIKE '" + textBox1.Text + "%'";
		    MySqlCommand dbcmd = new MySqlCommand(sql, dbconn);
		    MySqlDataReader dbdr = dbcmd.ExecuteReader();
		    while (dbdr.Read())
		    {
			    string rtb;
			    rtb = (dbdr["Fornavn"] + " ");
			    rtb = rtb + (dbdr["Etternavn"] + "\r\n");
			    rtb = rtb + (dbdr["Mail"] + "\r\n");
			    rtb = rtb + (dbdr["Mobil"] + "\r\n");
			    richTextBox1.Text = rtb;
			    Console.Write(dbdr[1]);
			    Console.WriteLine("\r\n");
		    }
		    Console.ReadLine();
		    dbconn.Close();
	    }
    }

 

Koden henter søkeverdien fra textBox1.Text når button1 klikkes, og skriver til richTextBox1.

 

Langt ifra en perfekt løsning, men holdt for mitt bruk. :)

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...