zokker13
Moderator
- Joined
- Oct 12, 2008
- Messages
- 6,719
- Points
- 235
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:
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
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:
C#:
///Datenaknzugiff mit Csharp
///Vom Tusch Viel Spaß und sow
///Version 0.0000000000a :D
///
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.OleDb; //Einbinden einer Klasse 'OleDb' für Access
using System.Data.Sql; //<= Beispiel für die Syntaxe für SQL Datenbanken
namespace Datenbankzugriff
{
public partial class Form1 : Form
{
/*Erstellung des Datasets (um die DB in den RAM zu schreiben)
* und des Adapters (um die Daten in das Datagridview zu schreiben*/
DataSet dsDaten = new DataSet();
OleDbDataAdapter daAdapter;
public Form1()
{
InitializeComponent();
}
string strconStr = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=Videothek.mdb"; //Pfad zur Datenbank
string strselect = "Select Name from Genre"; //selectierung der Tabellennamen as einer Tabelle der Wahl
private void Form1_Load(object sender, EventArgs e)
{
}
private void cmdVerbindung_Click(object sender, EventArgs e)
{
OleDbConnection dcCon = new OleDbConnection(strconStr); /*Verkuppelt die Datenbankverbindung mit dem String*/
/*Zuweisung der Variablen*/
daAdapter = new OleDbDataAdapter(strselect, dcCon);
dsDaten = new DataSet();
try
{
dcCon.Open(); //Öffnet die Verbindung zur DB
daAdapter.Fill(dsDaten, "Name"); //'Name' => Überschrift von der jeweiligen Tabelle :: Füllt den Ram mit der DB
dcCon.Close(); //Schließt die Verbindung zur DB wieder
MessageBox.Show("Daten übertragen");
}
catch
{
MessageBox.Show("Fehler");
}
}
private void cmdDaten_Click(object sender, EventArgs e)
{
DataTable dtDaten = dsDaten.Tables["Name"]; //'Name' => Überschrift von der jeweiligen Tabelle
/*Der folgende Part ist nur für
* die Listbox, relativ unwichtig,
* da unübersichtlich
* */
lstTabellen.Items.Clear(); /*Leert die Listbox, damit sich nichts ansammelt
* beim weiteren Betätigen von den Button*/
foreach (DataRow drReihe in dtDaten.Rows)
{
lstTabellen.Items.Add(drReihe["Name"]); //'Name' => Überschrift von der jeweiligen Tabelle
}
/*Schreibt die Daten aus dem RAM in das DataGridView rein*/
dgvView.DataSource = dtDaten;
}
private void cmdAktualisieren_Click(object sender, EventArgs e)
{
OleDbCommandBuilder cmB = new OleDbCommandBuilder(daAdapter);
OleDbConnection dcCon = new OleDbConnection(strconStr); /*Verkuppelt die Datenbankverbindung mit dem String*/
dsDaten = new DataSet();
dcCon.Open();
daAdapter.Update(dsDaten, "Genre");
dcCon.Close();
/* leert die Listboxen
dgvView.DataSource = "";
lstTabellen.Items.Clear();
MessageBox.Show("Aktualisiert!");*/
}
}
}
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