Προς το περιεχόμενο

Data binding με ComboBox σε WinForms


daidalus

Προτεινόμενες αναρτήσεις

Δημοσ.

Γειά χαρά!

Θέλω να φτιάξω ένα ComboBox που να φορτώνει στην drop-down list του ένα πίνακα από μια βάση δεδομένων (σε Access).Δεν θέλω όμως μόνο να το εμφανίζω, θέλω να μπορώ να εισάγω και νέες τιμές οι οποίες φυσικά θα αποθηκεύονται πίσω στη βάση.

Ο κώδικας μέχρι στιγμής είναι ο εξής:

>
string strQuery = "SELECT DISTINCT List.Name FROM List";
string strConn =  "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:\\Database.mdb";
............
InitializeComponent();
............						
OleDbDataAdapter dbAdapter = new OleDbDataAdapter(strQuery,strConn);
DataSet dbSet = new DataSet();
dbAdapter.Fill(dbSet,"List");
myComboBox.DataSource = dbSet.Tables["List"].DefaultView;
myComboBox.DisplayMember = "Name";

 

Επίσης έχω γράψει μεθοδο που καλείται όταν αλλάξει το κείμενο στο ComboBox.

>
void UpdateComboBox(ComboBox CmbBx)
	{
		string NewValue;
		bool AlreadyExists = false;

		NewValue = CmbBx.Text.ToString();
		
		for(int i = 0; i < CmbBx.Items.Count && !AlreadyExists; i++)
		{
			if(CmbBx.Items[i].ToString() == NewValue)
				AlreadyExists = true;
		}

		if (!AlreadyExists)
		CmbBx.Items.Add(NewValue);
	}

 

Όμως όταν δοκιμάσω να προσθέσω νέα τιμή μου πετάει exception:

Cannot modify the Items collection when the DataSource property is set.

Έχετε καμμιά ιδέα τι κάνω λάθος?Πώς θα το συνδέσω με την βάση μου?

Δημοσ.

Ναι από ότι φαίνεται έτσι πρέπει να το κάνω...Πίστευα ότι μπορούσε να γίνεται "αυτόματα" από τη στιγμή που θα το σύνδεσω με τη βάση αλλά μάλλον κάνω λάθος.Thanks for the help για άλλη μια φορά!

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...