Avatar billede mullexp Nybegynder
01. november 2005 - 08:25 Der er 8 kommentarer

Problemmer med at få data fra en dataset/DataTable i comboBox

Jeg lavet et udtrak fra en DB... som jeg smider i et dataset/DataTable. Den vil jeg så have over i en comboBox.
kode eks.:

OleDbDataAdapter myAdapter = new OleDbDataAdapter( sql, myConnection );
DataTable kundeData = new DataTable();
myAdapter.Fill( kundeData );
comboBox3.DataSource = kundeData;

Jeg får data i comboBox. System.Data.DataRowView. som alle posterne fra DB...

Hvad er fejlen....
Avatar billede the_party_dog Nybegynder
01. november 2005 - 08:27 #1
comboBox3.DisplayMember = "KolonneNavn";
Avatar billede dr_chaos Nybegynder
01. november 2005 - 08:30 #2
oledbadapter.fill(dataset)
comboBox3.datasource=dataset.tables(0).defualtview
comboBox3.datamember="KolonneText"
comboBox3.Valuemember="KolonneVærdi"
Avatar billede the_party_dog Nybegynder
01. november 2005 - 08:30 #3
Det er ikke nok at du fortæller den hvor den skal hente data fra, du er nød til at fortælle hvilket data den skal vise. Det gør du ved at angive navnet på den kolonne du vil have vist. Det er case-sentitive.

Du kan samtidig med også sætte comboBox3.ValueMember = "KolonneNavn";. Så vil du have en "skjult" værdi liggende sammen med det du viser. Her ville det være smart at gemme et ID f.eks.
Avatar billede mullexp Nybegynder
01. november 2005 - 09:03 #4
Jeg er lidt ny til det her:-)
jeg får en konle ude fra db... som hedder Foreninger. Det er den som jeg vil kunne vise i comboBox3 :-)

OleDbDataAdapter myAdapter = new OleDbDataAdapter( sql, myConnection );
DataTable kundeData = new DataTable();
myAdapter.Fill( kundeData );
comboBox3.DataSource = kundeData;
comboBox3.DisplayMember = "Foreninger";
comboBox3.ValueMember = "Foreninger";

myConnection.Close();

jeg får en fejl medling som hedder.:
An unhandled exception of type 'System.ArgumentException' occurred in system.windows.forms.dll

Additional information: Could not bind to the new display member.
Avatar billede mullexp Nybegynder
01. november 2005 - 09:04 #5
Skal der en try ting her
Avatar billede dr_chaos Nybegynder
01. november 2005 - 09:16 #6
prøv med
try
{
OleDbDataAdapter myAdapter = new OleDbDataAdapter( sql, myConnection );
DataTable kundeData = new DataTable();
myAdapter.Fill( kundeData );
comboBox3.DataSource = kundeData;
comboBox3.DisplayMember = "Foreninger";
comboBox3.ValueMember = "Foreninger";

myConnection.Close();
}catch(Exception EX)
{
System.Diagnostics.Debug.WriteLine(EX)
}
Avatar billede dr_chaos Nybegynder
01. november 2005 - 09:17 #7
så får du en exception udskrevet i debug vinduet i VS
Avatar billede mullexp Nybegynder
01. november 2005 - 19:11 #8
SELECT Forening FROM Foreninger;
'bookbeta1.exe': Loaded 'c:\windows\assembly\gac\system.xml\1.0.5000.0__b77a5c561934e089\system.xml.dll', No symbols loaded.
System.ArgumentException: Could not bind to the new display member.
Parameter name: newDisplayMember
at System.Windows.Forms.ListControl.SetDataConnection(Object newDataSource, BindingMemberInfo newDisplayMember, Boolean force)
  at System.Windows.Forms.ListControl.set_ValueMember(String value)
  at bookbeta1.Form1.set_foreninger() in c:\documents and settings\mulle1\my documents\visual studio projects\bookbeta1\form1.cs:line 1971


Mit kode ser sådan ud:
try   
{
OleDbDataAdapter myAdapter = new OleDbDataAdapter( sql, myConnection );
DataTable kundeData = new DataTable();
myAdapter.Fill( kundeData );
comboBox3.DataSource = kundeData;
comboBox3.DisplayMember = "Foreninger";
comboBox3.ValueMember = "Foreninger";

myConnection.Close();
}
catch(Exception EX)
{
System.Diagnostics.Debug.WriteLine(EX);
}

myConnection.Close();
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