Entwickler-Ecke
Datenbanken (inkl. ADO.NET) - Klassenübergreifender Datenzugriff
ripperle - Mo 19.07.10 09:44
Titel: Klassenübergreifender Datenzugriff
Hi,
ich habe einige Schwierigkeitenn bezüglich meiner Datenbank.
Mein aktueller Stand:
SQL Datenbank Compact 3.5
Datagrid dem ich als referenz meine Datenbank angebe...
Wenn ich im Datengrid die referenz im Designer anlege erstellt er mir ja autmatisch das Datasheet, ein bindingsource element und ein tabeladapter.
Mit dem tabeladapter kann ich auch wunderbar arbeiten (mit der update funktion schreibt er mir die änderenung des data grid in die sql datenbank) und auch acceptChanges und removeChanges und diese sachen funktionieren alle...
Soweit so gut :)
Mein Problem liegt darin das ich auf die Datenbank mit einer anderen Klasse zugreifen will... Momentan befindet sich das objekt vom datasheet und vom tableadapter usw. in der Form Klasse wo mein datagrid ist...
Wie greife ich jetzt aber mit einer anderen Klasse darauf zu?!?! muss ich jetzt nochmal ein datasheet und ein table adapter und so erstellen?? Wenn ja wie??
Ich glaube ich habe da auch noch etwas verständnisprobleme :)
Über Hilfe wäre ich sehr dankbar!!
Gruß
Ripperle
Ralf Jansen - Mo 19.07.10 11:42
Was ist in diesem Zusammenhang ein Datasheet?
Nur weil der Designer dir automatisch einen Tableadapter und ein Dataset auf der Form erzeugt heißt das noch lange nicht das das auch gut ist und man das so machen sollte.
Den Tableadapter kannst du dir einfach im Code erzeugen da wo du ihn brauchst wie jede andere Klasse auch und das Dataset das man vom Tableadapter befüllt bekommt kann man ganz normal an die Klassen weiterreichen (unter anderem deine bisherige Form) die dieses benötigen.
norman2306 - Mo 19.07.10 13:12
Du könntest einfach ein öffentlichen Accessor für die Sachen definieren, die du brauchst. So ganz verstehe ich dein Problem nicht...
ripperle - Mo 19.07.10 18:55
Ja warscheinlich ist meine Frage so einfach das niemand weis was ich will :D
also nochmal :):
-Ich habe eine Datenbank (SQL Compact) in der eine tabelle hinterlegt ist.
-diese Tabelle zeige ich in einem "dataGridView" an indem ich eine datenquelle auswähle und dort das DataSet auswähle (sorry datasheet war falsch :) )
Meien Frage (warscheinlich SEHR einfach zu beantworten):
-Wie beschreibe ich dieses DataSet bzw. meine SQL Datenbank von einer anderen Klasse aus?
Also ich bin hier warscheinlich wirklich ein blutiger anfänger, deswegen verstehe ich auch aussagen wie "Du könntest einfach ein öffentlichen Accessor für die Sachen definieren," nicht so ganz *g*
Bitte eine erklärung oder eine allgemeine erläuterung zum Umgang mit DataSets und SQL Datenbanken für Babys ^^
Danke für eure Hilfe
Ripperle
norman2306 - Di 20.07.10 10:39
Dein eigentliches Problem hat ja erstmal nichts mit DBs zu tun, wenn ich es richtig verstehe. Also, du verlinkst deine Datenbank mit dem DataGridView. Ich shätze mal, mit Datenquelle meinst du die DataSource-Eigenschaft des GridViews... Aber mal davon abgesehen sollte sich eigentlich das Datenbankobjekt in deinem Brojekt befinden. Das siehst du im Projektmappen-Explorer. Es sollte sich dort etwas befinden, dass in etwa "<dbname>DataSet.xsd" heißt. Auf dieses Objekt kannst du direkt zugreifen.
IsNull - Di 20.07.10 19:20
Evtl weis er auch nicht wie mit den Namespaces umgehen?
Wo in deinem Projekt ein File (*.cs z.B.) liegt ist erstmal egal.(Klar sollte es sinnvoll platziert und organisiert sein)
Erstellst du einen Unterordner (Meinorder) und darin dann eine neue Klasse, macht er dir automatisch aus namespaceRoot ein namespaceRoot.Meinorder.
Evtl. Hilft es dir auch, das Dataset nicht im Designer anzuschauen, sondern als normaler C# code (Rechtsklick -> "View Code"), so ist auch besser ersichtlich, in welchem Namespace es liegt, und somit wie man darauf zugreifen kann.
ripperle - Do 22.07.10 17:24
hehe ich habe mein fehler gefunden :)
Also habe jetzt keine 3 tage gesucht, hatte bis jetzt einfach keine zeit *g*
Mein Problem war das ich in diesem data_set zwei tabllen habe. Und meine funktionen aus meiner externen klasse hatte als übergabeparameter data_set.tabelle1 und das ist schreibgeschützt... wenn ich die oberklasse also nur das data_set übergebe funzt alles :)
Bitte nicht lachen aber aller anfang ist schwer ^^
Danke für eure Hilfe
Ripperle
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!