[C#] Databindings

Pagina: 1
Acties:

  • whoami
  • Registratie: December 2000
  • Laatst online: 23:04
Is er iemand die een plausibele verklaring heeft voor onderstaand geval:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
oleDbConnection1.Open();

cmdKennisCentrum.Connection   = oleDbConnection1;
cmdKennisCentrum.CommandText = "SELECT KnowledgeCenterId, " +
                               "       KnowledgeCenterName " +
                               "FROM tblKnowledgeCenter " +
                               "WHERE KnowledgeCenterId = 1";
                   
daKennisCentrum.SelectCommand = cmdKennisCentrum;   // Data Adapter
daKennisCentrum.Fill ( dsKennisCentrum, "tblKnowledgeCenter");  
            

textBox1.DataBindings.Add ("Text", 
                           dsKennisCentrum, 
                           "KnowledgeCenter");


Als ik deze code uitvoer, dan krijg ik volgende error:
System.ArgumentException occured
Can't bind to property or column KnowledgeCenter on DataSource
Als ik dan m'n code waar ik m'n databinding maak vervang door dit:
code:
1
2
3
textBox1.DataBindings.Add ("Text", 
                           dsKennisCentrum, 
                           "tblKnowledgeCenter.KnowledgeCenter");

Dan werkt het wel.
.NET heeft blijkbaar niet genoeg aan alleen de columnname, maar moet dus ook de tablename hebben. Nochtans, ik heb al gedefinieerd in m'n dataset gespecifieerd uit welke table ik m'n gegevens haal.

edit:
Wat is er aan de hand met die code-tags?

https://fgheysels.github.io/


Verwijderd

Een dataset kan meerdere tables hebben. Alleen de dataset opgeven werkt dus niet. Je moet per se de datatable specificeren bij de bind. Een van de redenen waarom ik altijd DataTables gebruik bij single table resultsets.

  • whoami
  • Registratie: December 2000
  • Laatst online: 23:04
Verwijderd schreef op 02 september 2002 @ 17:19:
Een dataset kan meerdere tables hebben. Alleen de dataset opgeven werkt dus niet. Je moet per se de datatable specificeren bij de bind. Een van de redenen waarom ik altijd DataTables gebruik bij single table resultsets.


Ja, maar in dit geval heeft de dataset toch maar 1 table, dus zou het toch in principe niet nodig moeten zijn ? :?

https://fgheysels.github.io/


  • Scare360
  • Registratie: Juli 2001
  • Laatst online: 27-08 08:10
whoami schreef op 02 september 2002 @ 18:39:

[...]


Ja, maar in dit geval heeft de dataset toch maar 1 table, dus zou het toch in principe niet nodig moeten zijn ? :?
Natuurlijk wel! Pak de SDK er eens bij waar DataSets behandeld worden... een DataSet veranderd niet ineens kwa opzet aangezien jij maar 1 table verwacht uit je query!

Verwijderd

precies. Wat Paul aangeeft is de reden dat je in sommige situaties gewoonweg moet kiezen tussen datasets en datatables. Het is niet voor niets dat alle select routines van de code gegenereerd door LLBLGen DataTables teruggeven en geen DataSets: de resultset is een single table, dan is een DataTable veel handiger dan een DataSet: je kunt meteen binden, zonder te refereren naar de single table die erin zit. :)

  • whoami
  • Registratie: December 2000
  • Laatst online: 23:04
* whoami moet duidelijk nog eens het hoofdstuk over data access in .NET hernemen.... ;)

https://fgheysels.github.io/

Pagina: 1