Autor Beitrag
hanspeterpeterhans
Hält's aus hier
Beiträge: 5



BeitragVerfasst: Do 19.11.09 11:25 
Hi Leute

Bin nicht sehr gut im C#, ich muss es als pflichtfreifach belegen aber habe eine Frage:

Ich möchte ein dvd verwaltungsprogramm machen und nun ste ich bisschen an. Ich habe eine form wo ich die Filme erfasse und eine andere auf der es die Filme in einer Access DB anzeigt.
Jetzt weiss ich aber hinten und vorne nicht wie ich das anstellen soll.

Ich habe mal probiert die TExtBoxen mit -> Databindings -> Erweitert und so halt die einzelnen Felder der DB den Textboxen zu verknüfen.
Ist das schonmal richtig so?

Wäre echt froh um Hilfe

Gruss
JüTho
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2021
Erhaltene Danke: 6

Win XP Prof
C# 2.0 (#D für NET 2.0, dazu Firebird); früher Delphi 5 und Delphi 2005 Pro
BeitragVerfasst: Do 19.11.09 13:18 
Hallo Hans,

nein, dein Vorgehen ist ziemlich ungeeignet. Du musst die einzelnen Teile trennen.

* Access enthält die Daten auf der Festplatte.
* Eine DataTable (oder auch mehrere in einem DataSet) repräsentieren die Daten im Arbeitsspeicher.
* OleDbConnection und OleDbDataAdapter stellen die Verbindung zwischen beidem her: Mit OleDbDataAdapter.Fill und einem passenden SELECT-Befehl werden die Daten in die DataTable geholt. Achtung: Die Connection soll nur während dieser Maßnahme gültig sein; deshalb gehört sie in einen using-Block.
* Die TextBoxen oder DataGridView oder was auch immer werden per DataBinding oder DataSource an die DataTable (!) gebunden.
* Änderungen in den Controls werden automatisch beim Wechsel eines Datensatzes in die DataTable übernommen. Allenfalls ist vor dem Speichern noch EndEdit aufzurufen.
* Änderungen aus der DataTable werden über einen neuen (!) OleDbDataAdapter und Connection per Update in die DB übertragen. Die benötigten SQL-Befehle kann man manuell eintragen, oder man bekommt sie aus einem SELECT-Befehl durch einen CommandBuilder.

Diese kurze Skizze kannst du ausführlich nachlesen z.B. in OpenBook Kap. 25 ff. Anstelle der dort verwendeten Sql-Klassen musst du alles auf Oledb übersetzen; Parameter werden mit '?' markiert - siehe dazu [Artikelserie] Parameter von SQL Befehlen.

Du siehst, dass du dir ein sehr komplexes Thema vorgenommen hast. Viel Erfolg!

Jürgen
hanspeterpeterhans Threadstarter
Hält's aus hier
Beiträge: 5



BeitragVerfasst: Do 19.11.09 21:04 
Hei danke
Werd ich mir mal ansehen
kleine frage. ich hatte mal was mit VB zu tun und nun kann ich mir da vielleicht was abgucken. was ist in c# das was ich in VB mit ME. dwdjwduw gemcht habe, also das ME?

Danke und gruss


Es zeigt mir immer einen Fehler an hier:

filmeBindingSource.EndEdit();
filmeTableAdapter.Update(FilmeDatenbankDataSet);
Close();

möchte meine einträge aktualisieren
JüTho
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2021
Erhaltene Danke: 6

Win XP Prof
C# 2.0 (#D für NET 2.0, dazu Firebird); früher Delphi 5 und Delphi 2005 Pro
BeitragVerfasst: Fr 20.11.09 10:10 
user profile iconhanspeterpeterhans hat folgendes geschrieben Zum zitierten Posting springen:
kleine frage. ich hatte mal was mit VB zu tun und nun kann ich mir da vielleicht was abgucken. was ist in c# das was ich in VB mit ME.

Wenn du "Me" meinst, da gibt es nichts Vergleichbares. In manchen Situationen kann man "this" verwenden, nämlich als Bezug auf die aktuelle Klasse; aber den Bezug auf die aktuelle Arbeitsumgebung usw. gibt es nichts.

user profile iconhanspeterpeterhans hat folgendes geschrieben Zum zitierten Posting springen:
dwdjwduw gemcht habe, also das ME?

"dwdjwduw" ist ein ganz schlechtes Beispiel, das kennt niemand. Also kann niemand verstehen, was du in Verbindung mit ME meinst.

user profile iconhanspeterpeterhans hat folgendes geschrieben Zum zitierten Posting springen:
Es zeigt mir immer einen Fehler an hier:

Und das ist jetzt ein Intelligenztest für uns: Wir sollen Art, Inhalt und Umfang des Fehler feststellen? Compiler oder Laufzeit? Welcher Fehler? Welche Stelle genau?

Ich ärgere mich: Ich wollte dir davon abraten, mit TableAdapter zu arbeiten, weil dabei der Designer viele Maßnahmen versteckt. Nun ist es passiert...

Gruß Jürgen

PS. Code sollte als solcher markiert werden (auch bei nur einer Zeile): Beitrag mit dem Schere-Button nochmals öffnen, Code-Text markieren, "Bereiche" öffnen, C# auswählen, Plus-Button, "Absenden". Bitte erledige das noch!
hanspeterpeterhans Threadstarter
Hält's aus hier
Beiträge: 5



BeitragVerfasst: Sa 21.11.09 13:34 
jo ich uss es jetzt anders machen.
ich habe nurnoch ein problem. ich will auf den button speichern klicken dass dann die tabelle im c sharp auf die access db übertragen will. muss doch nur 1 2 zeilen code sein aber in c# bring ichs ned hin.

wie geht denn das? Danke vielmal
JüTho
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2021
Erhaltene Danke: 6

Win XP Prof
C# 2.0 (#D für NET 2.0, dazu Firebird); früher Delphi 5 und Delphi 2005 Pro
BeitragVerfasst: Sa 21.11.09 14:04 
Ich kann fast keinen Zusammenhang mit der bisherigen Aufgabenstellung erkennen. Das liegt auch daran, dass du die Möglichkeiten der deutschen (Schrift-) Sprache nicht benutzt: Groß- und Kleinschreibung, Satzzeichen für sinnvolle Gliederung. Das sind nämlich keine Folterinstrumente von Lehrern oder Besserwissern wie mir, sondern sie dienen einem Leser dazu, den Inhalt eines Textes leichter zu verstehen.

Konkret kann ich im Moment nur sagen, dass es mehr als 1 bis 2 Zeilen Code sind. Es dreht sich um den Update-Befehl von DbDataAdapter (oder notfalls auch TableAdapter), aber dahinter verbergen sich viele Einzelmaßnahmen. Unter anderem müssen UpdateCommand usw. als passende SQL-Befehle festgelegt werden. Dazu habe ich bereits auf das OpenBook hingewiesen. Was meinst du denn, warum das in mehreren Kapiteln erst gegen Schluss behandelt wird?

Jürgen
hanspeterpeterhans Threadstarter
Hält's aus hier
Beiträge: 5



BeitragVerfasst: Sa 21.11.09 14:21 
In VB gings ganz einfach :=)
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: Sa 21.11.09 14:29 
In C# geht's sogar noch einfacher, sobald du die Grundlagen beherrschst und es keinen Grund mehr gibt, auf einen O/R-Mapper zu verzichten ;) . Davor allerdings wenigstens ein Projekt mit "reinem" ADO.NET bestritten zu haben, kann nicht schaden :D .

_________________
>λ=
hanspeterpeterhans Threadstarter
Hält's aus hier
Beiträge: 5



BeitragVerfasst: Mo 23.11.09 11:53 
Danke habs irgendwie geschafft ;)

nun ein neues Problem


Ich habe meine Access DB inder ich den Pfad zu einem Video angebe. Wie kann ich nun den Pfad auslesen dass es direkt das Video öffnet.
Habe mich schon ein bisschen infromiert und lade gerade das DirectX Software Development Kit herunter ;)

Danke und gruss
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: Mo 23.11.09 19:30 
Ich nehme mal an, dass du den Pfad schon ausgelesen hast und es jetzt um die Anzeige der Datei geht? Dann erstelle dafür bitte ein separates Topic in der richtigen Sparte :) .

_________________
>λ=