Autor Beitrag
flyhigh83
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 67

Win 7
C# (VS2010)
BeitragVerfasst: Do 16.12.10 14:03 
Hi,

mal eine Bescheidene Frage wo mache ich hier einen Fehler.
Mein Problem ist, wenn ich mein Programm Starte habe ich diesen Code in die MainformLoad integriert. Wenn ich also mein Programm starte ändert sich automatisch jedesmal der erste Datensatz in meiner Tabell welche der "VereinComboBox" zugewiesen ist, ohne das ich irgend etwas mache.

Rufe ich dann andere Datensätze auf so bleiben diese korrekt. Nichts ändert sich. Warum ist das so?

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
      this.VereinComboBox.DataSource = anbieterTableAdapter.GetDataVerein();
      this.VereinComboBox.DisplayMember = "anbBezeichnung";
      this.VereinComboBox.ValueMember = "idAnbieter";
      this.BeichnungComboBox.DataSource = anbieterTableAdapter.GetDataBezeichnung();
      this.BezeichnungComboBox.DisplayMember = "anbBezeichnung";
      this.BezeichnungComboBox.ValueMember = "idAnbieter";


Als Hintergrund beide Abfrage sind fast Identisch. Die eine Wählt alle Datensätze welche in einer Spalte eine "True" haben die Andere Abfrage wählt alle Datensätze die kein "True" in der Spalte haben.

Ich möchte das eigentlich nicht lösen indem ich eine Extra Tabelle dafür anlege, da es von dem Design her absolut so passen würde. Da beide Absolut identisch sind bis auf das einer ein "True" hat damit er in der einen Auftaucht oder ein "False" damit er in der "BezeichnungComboBox" auftaucht.
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4708
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Do 16.12.10 14:13 
Zitat:
Wenn ich also mein Programm starte ändert sich automatisch jedesmal der erste Datensatz in meiner Tabell welche der "VereinComboBox" zugewiesen ist, ohne das ich irgend etwas mache.


Wann wird der Datensatz der Combobox zugewiesen? Nach oder vor dem gezeigten Zuweisen der DataSourcen? Wenn du das vorher machst könnte ich mir vorstellen das der Wert im Datensatz gelöscht wird, da er keinem Eintrag in der noch leeren ComboBox Liste entspricht.

Für diesen Beitrag haben gedankt: flyhigh83
flyhigh83 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 67

Win 7
C# (VS2010)
BeitragVerfasst: Fr 17.12.10 08:59 
Danke Ralf,

da bringt du mich auf die vermutliche Lösung. Da die Combobox über den Designer erstellt wurde wird diese definitif vorher erstellt, da ja erst das Form erstellt wird und dann erst beim Load mein Code durchgeführt wird. Ich versuche es mal direkt im FormDesigner festzulegen. Über das normale Auswahlmenü von Visual Studio hat er mir die normal Abfragen nicht zugelassen er wollte immer nur die Tabelle.
flyhigh83 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 67

Win 7
C# (VS2010)
BeitragVerfasst: Fr 17.12.10 09:11 
Hi,

ja das war es.

in die Datei "Form.Designer.cs" an die richtige Stelle die Abfrage reinhauen und es geht.
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
//
// VereinComboBox
//
...
...
this.VereinComboBox.DataSource = anbieterTableAdapter.GetDataByVerein();
this.VereinComboBox.DisplayMember = "anbBezeichnung";
this.VereinComboBox.ValueMember = "idAnbieter";


Danke. Ich lerne immer mehr dazu :-)
flyhigh83 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 67

Win 7
C# (VS2010)
BeitragVerfasst: Mo 20.12.10 16:17 
Hi Nachtrag.

Funktioniert hat es. Aber leider nur von kurzer Verweildauer. ich habe das gleiche noch für eine Datagridview Spalte angelegt. Dort hat er mir immer Fehler ausgemissen.

Das eigentliche Problem was jetzt teilweise auftaucht ist. Sobald ich mein Programm Beende erstellt er nach dem Debuggen in der *.res Datei Zeichencode in Base 64 decodiert.

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
  <data name="BezeichnungComboBox.DataSource" mimetype="application/x-microsoft.net.object.binary.base64">
    <value>
        AAEAAAD/////AQAAAAAAAAAMAgAAAFNyZW1pdGV4ZGJEYXRhU2V0LkRlc2lnbmVyLmNzLCBWZXJzaW9u
        PTAuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAKlJlbWl0ZXgu
        cmVtaXRleGRiRGF0YVNldCthbmJpZXRlckRhdGFUYWJsZQMAAAAZRGF0YVRhYmxlLlJlbW90aW5nVmVy
        c2lvbglYbWxTY2hlbWELWG1sRGlmZkdyYW0DAQEOU3lzdGVtLlZlcnNpb24CAAAACQMAAAAGBAAAAKIi
        PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTE2Ij8+DQo8eHM6c2NoZW1hIHhtbG5zPSIi
        IHhtbG5zOnhzPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYSIgeG1sbnM6bXNkYXRhPSJ1
        cm46c2NoZW1hcy1taWNyb3NvZnQtY29tOnhtbC1tc2RhdGEiPg0KICA8eHM6ZWxlbWVudCBuYW1lPSJh
        bmJpZXRlciI+DQogICAgPHhzOmNvbXBsZXhUeXBlPg0KICAgICAgPHhzOnNlcXVlbmNlPg0KICAgICAg
        ICA8eHM6ZWxlbWVudCBuYW1lPSJpZEFuYmlldGVyIiBtc2RhdGE6QXV0b0luY3JlbWVudD0idHJ1ZSIg
        bXNkYXRhOkF1dG9JbmNyZW1lbnRTZWVkPSItMSIgbXNkYXRhOkF1dG9JbmNyZW1lbnRTdGVwPSItMSIg
        ....


Das Problem irgend etwas ist an dem Code faul. Sobald ich erneut Debuggen will, erhalte ich Fehler. Also alles wieder löschen und neu Code eintippen.

Problemlösung bisher wäre nur die Daten in zwei Tabellen zu trennen und dann sauber wie es der Designer vorschlägt über ein DataBinding Object dies zu lösen.

Habt ihr noch andere Vorschläge?
Trashkid2000
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 561
Erhaltene Danke: 137



BeitragVerfasst: Mo 20.12.10 19:51 
Hallo,
user profile iconflyhigh83 hat folgendes geschrieben Zum zitierten Posting springen:
Wenn ich also mein Programm starte ändert sich automatisch jedesmal der erste Datensatz in meiner Tabelle welche der "VereinComboBox" zugewiesen ist, ohne das ich irgend etwas mache.
Also, aus dem Code ist nicht ersichtlich, warum sich an den Daten in der Datenbank irgendetwas ändern sollte, weil Du ja nur die Daten anzeigst. Oder?
Und in der Form.Designer sollte man (ausser in irgenwelchen Spezialfällen oder um Fehler zu beseitigen) gar nicht rumspielen. Das beste wäre vielleicht, wenn Du das ganze Binding im Konstruktor der Form machst. Oder nochmal auslagerst.
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
DataSet1 ds = new DataSet1();
public Form1()
{
  InitializeComponent();
  anbieterTableAdapter ata = new anbieterTableAdapter();
  ata.Fill(ds.anbieter); 
  VereinComboBox.DataSource = GetDataVerein();
  VereinComboBox.DisplayMember = "anbBezeichnung";
  VereinComboBox.ValueMember = "idAnbieter";
  BezeichnungComboBox.DataSource = GetDataBezeichnung();
  BezeichnungComboBox.DisplayMember = "anbBezeichnung";
  BezeichnungComboBox.ValueMember = "idAnbieter";
}

//die beiden Methoden sind bei Dir wahrscheinlich direkt im Dataset implementiert
public List<DataSet1.anbieterRow> GetDataVerein()
{
  return ds.anbieter.Where(a => !a.IsDescription).ToList();
}

public List<DataSet1.anbieterRow> GetDataBezeichnung()
{
  return ds.anbieter.Where(a => a.IsDescription).ToList();    
}
Und mit der Ressourcen-Datei verstehe ich nicht ganz. Denn die beiden DataSources sind ja keine Ressourcen. Warum tauchen die überhaupt in der Res-Datei auf? :nixweiss:
Marko
flyhigh83 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 67

Win 7
C# (VS2010)
BeitragVerfasst: Di 21.12.10 10:22 
Danke.

Im Konstruktor des Forms läuft es jetzt sauber.
Wegen der Resourcen Datei. Das hat dann der compiler oder das Visual Studio automatisch reingeschrieben. Warum weis ich auch nicht. Da habe ich nicht dran rumgespielt. An der Designer Datei habe ich nur rumgespielt, da ich es im Designen der Combobox nicht direkt auswählen konnte. Da lassen sich nur DataBindings Auswählen. Also die reinen Tabellen aber nicht die GetDataMethoden.
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4708
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Di 21.12.10 11:13 
Zitat:
An der Designer Datei habe ich nur rumgespielt, da ich es im Designen der Combobox nicht direkt auswählen konnte. Da lassen sich nur DataBindings Auswählen. Also die reinen Tabellen aber nicht die GetDataMethoden.


Die Methoden würde man auch üblicherweise nicht direkt zuordnen sondern eine BindingSource zwischen schalten.