+ Antworten
Ergebnis 1 bis 7 von 7

[C Sharp] Access- Datenbanken

Eine Diskussion über [C Sharp] Access- Datenbanken im Forum Hausaufgaben. Teil des Reallife-Bereichs; Moin moin, zur Zeit haben wir in der Schule das Thema Datenbanken. Wir haben eine menge neuer Befehle gelernt aber ...

  1. #1
    데르 외계
    Avatar von zokker13
    Registriert seit
    12.10.2008
    Ort
    Wuppertal
    Beiträge
    6.660
    Name
    Philipp
    Nick
    cWc.zokker13

    [C Sharp] Access- Datenbanken

    Moin moin,

    zur Zeit haben wir in der Schule das Thema Datenbanken.
    Wir haben eine menge neuer Befehle gelernt aber hängen alle irgendwie fest.

    Unsere Lehrerin arbeitet offensichtlich gegen mich, nachdem ich sie auf einen Syntaxfehler in einem Arbeitsblatt hingewiesen hat und sie das nicht eingesehen hat.

    Wie dem auch sei, wir sollen eine Access- Datenbank in einer Form einbinden.
    Die Schritte, die wir dabei vornehmen;
    Verbindung herstellen
    Daten anzeigen
    Daten verändern und updaten

    Ich hänge, wie bereits erwähnt, an dem Updaten- part fest.


    Da das Internet nichts wirklich ausspuckte und meine Lehrerin mich seit Neustem hasst, frag ich euch! =)

    Für den Updaten- Command benutzen wir den Commandbuilder.


    Code:
    Spoiler:

    1.  
    2. ///Datenaknzugiff mit Csharp
    3. ///Vom Tusch Viel Spaß und sow
    4. ///Version 0.0000000000a :D
    5. ///
    6. using System;
    7. using System.Collections.Generic;
    8. using System.ComponentModel;
    9. using System.Data;
    10. using System.Drawing;
    11. using System.Linq;
    12. using System.Text;
    13. using System.Windows.Forms;
    14. using System.Data.OleDb; //Einbinden einer Klasse 'OleDb' für Access
    15. using System.Data.Sql; //<= Beispiel für die Syntaxe für SQL Datenbanken
    16.  
    17. namespace Datenbankzugriff
    18. {
    19. public partial class Form1 : Form
    20. {
    21. /*Erstellung des Datasets (um die DB in den RAM zu schreiben)
    22.   * und des Adapters (um die Daten in das Datagridview zu schreiben*/
    23. DataSet dsDaten = new DataSet();
    24. OleDbDataAdapter daAdapter;
    25.  
    26.  
    27. public Form1()
    28. {
    29. InitializeComponent();
    30. }
    31. string strconStr = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=Videothek.mdb"; //Pfad zur Datenbank
    32. string strselect = "Select Name from Genre"; //selectierung der Tabellennamen as einer Tabelle der Wahl
    33.  
    34.  
    35. private void Form1_Load(object sender, EventArgs e)
    36. {
    37. }
    38.  
    39. private void cmdVerbindung_Click(object sender, EventArgs e)
    40. {
    41. OleDbConnection dcCon = new OleDbConnection(strconStr); /*Verkuppelt die Datenbankverbindung mit dem String*/
    42.  
    43. /*Zuweisung der Variablen*/
    44. daAdapter = new OleDbDataAdapter(strselect, dcCon);
    45.  
    46. dsDaten = new DataSet();
    47.  
    48. try
    49. {
    50. dcCon.Open(); //Öffnet die Verbindung zur DB
    51. daAdapter.Fill(dsDaten, "Name"); //'Name' => Überschrift von der jeweiligen Tabelle :: Füllt den Ram mit der DB
    52. dcCon.Close(); //Schließt die Verbindung zur DB wieder
    53. MessageBox.Show("Daten übertragen");
    54.  
    55. }
    56. catch
    57. {
    58. MessageBox.Show("Fehler");
    59. }
    60. }
    61.  
    62. private void cmdDaten_Click(object sender, EventArgs e)
    63. {
    64.  
    65. DataTable dtDaten = dsDaten.Tables["Name"]; //'Name' => Überschrift von der jeweiligen Tabelle
    66.  
    67. /*Der folgende Part ist nur für
    68.   * die Listbox, relativ unwichtig,
    69.   * da unübersichtlich
    70.   * */
    71. lstTabellen.Items.Clear(); /*Leert die Listbox, damit sich nichts ansammelt
    72.   * beim weiteren Betätigen von den Button*/
    73.  
    74. foreach (DataRow drReihe in dtDaten.Rows)
    75. {
    76. lstTabellen.Items.Add(drReihe["Name"]); //'Name' => Überschrift von der jeweiligen Tabelle
    77. }
    78.  
    79. /*Schreibt die Daten aus dem RAM in das DataGridView rein*/
    80. dgvView.DataSource = dtDaten;
    81.  
    82. }
    83.  
    84. private void cmdAktualisieren_Click(object sender, EventArgs e)
    85. {
    86. OleDbCommandBuilder cmB = new OleDbCommandBuilder(daAdapter);
    87. OleDbConnection dcCon = new OleDbConnection(strconStr); /*Verkuppelt die Datenbankverbindung mit dem String*/
    88.  
    89. dsDaten = new DataSet();
    90.  
    91. dcCon.Open();
    92. daAdapter.Update(dsDaten, "Genre");
    93. dcCon.Close();
    94.  
    95.  
    96. /* leert die Listboxen
    97.   dgvView.DataSource = "";
    98.   lstTabellen.Items.Clear();
    99.   MessageBox.Show("Aktualisiert!");*/
    100. }
    101. }
    102. }
    103.  


    Wenn man den Code compilert, erscheint der Fehler: "Update: TableMapping['Genre'] oder DataTable 'Genre' kann nicht gefunden werden.
    Ich weiß nicht wo der Fehler ist und hoffe, dass ihr mir helfen koennt.

    Mitf freundlichen Grüßen

    Phil
    Angehängte Dateien Angehängte Dateien

  2. #2
    데르 외계
    Avatar von zokker13
    Registriert seit
    12.10.2008
    Ort
    Wuppertal
    Beiträge
    6.660
    Name
    Philipp
    Nick
    cWc.zokker13
    *push* Keiner ne Idee? =(

  3. #3
    Stabsfeldwebel
    Avatar von Wilma
    Registriert seit
    02.02.2007
    Ort
    Ruhrpott
    Alter
    37
    Beiträge
    4.062
    Name
    Michael
    Nick
    dp.Mordred
    Clans
    dp.
    DataTable 'Genre' kann nicht gefunden werden.
    <-- existiert "Genre" denn? sonst würde die fehlermeldung ja sinn machen^^
    www.die-philosoffen.com
    Wir zocken [ZH] [SC2] [EVE] [BF:BC2]
    Mindestalter: 21 Jahre

  4. #4
    Clanforum-Moderator
    Avatar von b-a-d-b-o-y
    Registriert seit
    28.03.2010
    Ort
    Süddeutschland
    Beiträge
    14.118
    Nick
    [uG]b-a-d-b-o-y
    Clans
    [uG]
    Mhhh also csharp keine ahnung, aber beim schnellen drüber schauen. Du legst im Speicher mit
    daAdapter.Fill(dsDaten, "Name");
    Die Spalte "Name" an und willst dann später mit
    daAdapter.Update(dsDaten, "Genre");
    die Spalte "Genre" updaten, die es dann ja garnicht geben dürfte oder

  5. #5
    Stabsfeldwebel
    Avatar von Wilma
    Registriert seit
    02.02.2007
    Ort
    Ruhrpott
    Alter
    37
    Beiträge
    4.062
    Name
    Michael
    Nick
    dp.Mordred
    Clans
    dp.
    Zitat Zitat von b-a-d-b-o-y Beitrag anzeigen
    Mhhh also csharp keine ahnung, aber beim schnellen drüber schauen. Du legst im Speicher mit Die Spalte "Name" an und willst dann später mit die Spalte "Genre" updaten, die es dann ja garnicht geben dürfte oder
    Genre und Name sind doch tabellen? ansonsten sehen wir es ja ähnlich.

    des weiteren fiel mir gerade auf, dass die initialisierung "dsDaten = new DataSet();" 2mal vorkommt.
    www.die-philosoffen.com
    Wir zocken [ZH] [SC2] [EVE] [BF:BC2]
    Mindestalter: 21 Jahre

  6. #6
    Clanforum-Moderator
    Avatar von b-a-d-b-o-y
    Registriert seit
    28.03.2010
    Ort
    Süddeutschland
    Beiträge
    14.118
    Nick
    [uG]b-a-d-b-o-y
    Clans
    [uG]
    oh hab ich spalte geschrieben

    Also egal welche Sprache. Prinzipiell muss man öffnen was man befüllen will, wahrscheinlich kommt daher die Fehlermeldung, da laut Quelltext, so wie es verstehe, die Tabelle "Name" im Speicher erstellt wird und mit den Daten aus "Genre" (Spaltenname "Name") befüllt wird. Später soll aber die Tabelle "Genre" mit den Daten aus "Genre" geupdatet werden.

  7. #7
    Clanforum-Moderator
    Avatar von b-a-d-b-o-y
    Registriert seit
    28.03.2010
    Ort
    Süddeutschland
    Beiträge
    14.118
    Nick
    [uG]b-a-d-b-o-y
    Clans
    [uG]
    Wenigstens mal ne Rückmeldung könntest du geben, was nun das Problem ist/war.

+ Antworten

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •