?
1. Eine TextBox wurde per BindingContext gebunden
2. es existieren 2 Button mit denn switscht man durch die Datensätze was
die textbox anzeigt
3. Du kannst über die eine Textbox folgendes machen:
-den aktuell angeswitschten DS editieren und per Aktualisieren-Button übernehmen
die DB nimmt es an und das GUI wird auch updatet
-Den aktuelle angeswitchten DS löschen DB und GUI werden auch wieder
aktualisiert per/über Löschen-Button
-eine Datensatz über das Textfeld einfügen auch über eine Button auch hier wird
das GUI und die DB refrescht
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
namespace DataBindingExample2
{
/// <summary>
/// Zusammenfassung für Form1.
/// </summary>
public class Form1 : System.Windows.Forms.Form
{
private System.Data.OleDb.OleDbDataAdapter oleDbDataAdapter1;
private System.Data.OleDb.OleDbCommand oleDbSelectCommand1;
private System.Data.OleDb.OleDbCommand oleDbInsertCommand1;
private System.Data.OleDb.OleDbCommand oleDbUpdateCommand1;
private System.Data.OleDb.OleDbCommand oleDbDeleteCommand1;
private System.Data.OleDb.OleDbConnection oleDbConnection1;
private System.Windows.Forms.Button btnVorheriger;
private System.Windows.Forms.Button btnNaechster;
private System.Windows.Forms.Label lblDsNr;
private System.Windows.Forms.TextBox txtThemengebiet;
private DataBindingExample2.DataSet1 dataSet11;
private System.Windows.Forms.Button btnAktualisieren;
private System.Windows.Forms.Button btnNeuerDatensatz;
private System.Windows.Forms.Button btnLöschen;
/// <summary>
/// Erforderliche Designervariable.
/// </summary>
private System.ComponentModel.Container components = null;
public Form1()
{
//
// Erforderlich für die Windows Form-Designerunterstützung
//
InitializeComponent();
//
// TODO: Fügen Sie den Konstruktorcode nach dem Aufruf von InitializeComponent hinzu
//
DatenLaden();
}
/// <summary>
/// Die verwendeten Ressourcen bereinigen.
/// </summary>
protected override void Dispose( bool disposing )
{
if( disposing )
{
if (components != null)
{
components.Dispose();
}
}
base.Dispose( disposing );
}
#region Vom Windows Form-Designer generierter Code
/// <summary>
/// Erforderliche Methode für die Designerunterstützung.
/// Der Inhalt der Methode darf nicht mit dem Code-Editor geändert werden.
/// </summary>
private void InitializeComponent()
{
this.oleDbDataAdapter1 = new System.Data.OleDb.OleDbDataAdapter();
this.oleDbSelectCommand1 = new System.Data.OleDb.OleDbCommand();
this.oleDbInsertCommand1 = new System.Data.OleDb.OleDbCommand();
this.oleDbUpdateCommand1 = new System.Data.OleDb.OleDbCommand();
this.oleDbDeleteCommand1 = new System.Data.OleDb.OleDbCommand();
this.oleDbConnection1 = new System.Data.OleDb.OleDbConnection();
this.btnVorheriger = new System.Windows.Forms.Button();
this.btnNaechster = new System.Windows.Forms.Button();
this.lblDsNr = new System.Windows.Forms.Label();
this.txtThemengebiet = new System.Windows.Forms.TextBox();
this.dataSet11 = new DataBindingExample2.DataSet1();
this.btnAktualisieren = new System.Windows.Forms.Button();
this.btnNeuerDatensatz = new System.Windows.Forms.Button();
this.btnLöschen = new System.Windows.Forms.Button();
((System.ComponentModel.ISupportInitialize)(this.dataSet11)).BeginInit();
this.SuspendLayout();
//
// oleDbDataAdapter1
//
this.oleDbDataAdapter1.DeleteCommand = this.oleDbDeleteCommand1;
this.oleDbDataAdapter1.InsertCommand = this.oleDbInsertCommand1;
this.oleDbDataAdapter1.SelectCommand = this.oleDbSelectCommand1;
this.oleDbDataAdapter1.TableMappings.AddRange(new System.Data.Common.DataTableMapping[] {
new System.Data.Common.DataTableMapping("Table", "Themengebiete", new System.Data.Common.DataColumnMapping[] {
new System.Data.Common.DataColumnMapping("Themengebiet", "Themengebiet")})});
this.oleDbDataAdapter1.UpdateCommand = this.oleDbUpdateCommand1;
//
// oleDbSelectCommand1
//
this.oleDbSelectCommand1.CommandText = "SELECT Themengebiet FROM Themengebiete";
this.oleDbSelectCommand1.Connection = this.oleDbConnection1;
//
// oleDbInsertCommand1
//
this.oleDbInsertCommand1.CommandText = "INSERT INTO Themengebiete(Themengebiet) VALUES (?)";
this.oleDbInsertCommand1.Connection = this.oleDbConnection1;
this.oleDbInsertCommand1.Parameters.Add(new System.Data.OleDb.OleDbParameter("Themengebiet", System.Data.OleDb.OleDbType.VarWChar, 50, "Themengebiet"));
//
// oleDbUpdateCommand1
//
this.oleDbUpdateCommand1.CommandText = "UPDATE Themengebiete SET Themengebiet = ? WHERE (Themengebiet = ?)";
this.oleDbUpdateCommand1.Connection = this.oleDbConnection1;
this.oleDbUpdateCommand1.Parameters.Add(new System.Data.OleDb.OleDbParameter("Themengebiet", System.Data.OleDb.OleDbType.VarWChar, 50, "Themengebiet"));
this.oleDbUpdateCommand1.Parameters.Add(new System.Data.OleDb.OleDbParameter("Original_Themengebiet", System.Data.OleDb.OleDbType.VarWChar, 50, System.Data.ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "Themengebiet", System.Data.DataRowVersion.Original, null));
//
// oleDbDeleteCommand1
//
this.oleDbDeleteCommand1.CommandText = "DELETE FROM Themengebiete WHERE (Themengebiet = ?)";
this.oleDbDeleteCommand1.Connection = this.oleDbConnection1;
this.oleDbDeleteCommand1.Parameters.Add(new System.Data.OleDb.OleDbParameter("Original_Themengebiet", System.Data.OleDb.OleDbType.VarWChar, 50, System.Data.ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "Themengebiet", System.Data.DataRowVersion.Original, null));
//
// oleDbConnection1
//
this.oleDbConnection1.ConnectionString = @"Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Registry Path=;Jet OLEDB:Database Locking Mode=1;Data Source=""C:\Dokumente und Einstellungen\Christian.WORKGROU-0F4C62\Eigene Dateien\EnglischDeutsch.mdb"";Jet OLEDB:Engine Type=5;Provider=""Microsoft.Jet.OLEDB.4.0"";Jet OLEDB:System database=;Jet OLEDB:SFP=False;persist security info=False;Extended Properties=;Mode=Share Deny None;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Create System Database=False;Jet OLEDB:Don't Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;User ID=Admin;Jet OLEDB:Global Bulk Transactions=1";
//
// btnVorheriger
//
this.btnVorheriger.Location = new System.Drawing.Point(88, 64);
this.btnVorheriger.Name = "btnVorheriger";
this.btnVorheriger.TabIndex = 0;
this.btnVorheriger.Text = "<";
this.btnVorheriger.Click += new System.EventHandler(this.btnVorheriger_Click);
//
// btnNaechster
//
this.btnNaechster.Location = new System.Drawing.Point(256, 64);
this.btnNaechster.Name = "btnNaechster";
this.btnNaechster.TabIndex = 1;
this.btnNaechster.Text = ">";
this.btnNaechster.Click += new System.EventHandler(this.btnNaechster_Click);
//
// lblDsNr
//
this.lblDsNr.Location = new System.Drawing.Point(184, 64);
this.lblDsNr.Name = "lblDsNr";
this.lblDsNr.Size = new System.Drawing.Size(56, 24);
this.lblDsNr.TabIndex = 2;
this.lblDsNr.Text = "0";
this.lblDsNr.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
//
// txtThemengebiet
//
this.txtThemengebiet.Location = new System.Drawing.Point(88, 112);
this.txtThemengebiet.Name = "txtThemengebiet";
this.txtThemengebiet.Size = new System.Drawing.Size(240, 20);
this.txtThemengebiet.TabIndex = 3;
this.txtThemengebiet.Text = "";
//
// dataSet11
//
this.dataSet11.DataSetName = "DataSet1";
this.dataSet11.Locale = new System.Globalization.CultureInfo("de-DE");
//
// btnAktualisieren
//
this.btnAktualisieren.Location = new System.Drawing.Point(88, 152);
this.btnAktualisieren.Name = "btnAktualisieren";
this.btnAktualisieren.Size = new System.Drawing.Size(240, 24);
this.btnAktualisieren.TabIndex = 4;
this.btnAktualisieren.Text = "Aktualisieren";
this.btnAktualisieren.Click += new System.EventHandler(this.btnAktualisieren_Click);
//
// btnNeuerDatensatz
//
this.btnNeuerDatensatz.Location = new System.Drawing.Point(88, 192);
this.btnNeuerDatensatz.Name = "btnNeuerDatensatz";
this.btnNeuerDatensatz.Size = new System.Drawing.Size(240, 24);
this.btnNeuerDatensatz.TabIndex = 5;
this.btnNeuerDatensatz.Text = "Neuer Datensatz";
this.btnNeuerDatensatz.Click += new System.EventHandler(this.btnNeuerDatensatz_Click);
//
// btnLöschen
//
this.btnLöschen.Location = new System.Drawing.Point(88, 232);
this.btnLöschen.Name = "btnLöschen";
this.btnLöschen.Size = new System.Drawing.Size(240, 24);
this.btnLöschen.TabIndex = 6;
this.btnLöschen.Text = "Datensatz Löschen";
this.btnLöschen.Click += new System.EventHandler(this.btnLöschen_Click);
//
// Form1
//
this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
this.ClientSize = new System.Drawing.Size(520, 342);
this.Controls.Add(this.btnLöschen);
this.Controls.Add(this.btnNeuerDatensatz);
this.Controls.Add(this.btnAktualisieren);
this.Controls.Add(this.txtThemengebiet);
this.Controls.Add(this.lblDsNr);
this.Controls.Add(this.btnNaechster);
this.Controls.Add(this.btnVorheriger);
this.Name = "Form1";
this.Text = "Form1";
((System.ComponentModel.ISupportInitialize)(this.dataSet11)).EndInit();
this.ResumeLayout(false);
}
#endregion
/// <summary>
/// Der Haupteinstiegspunkt für die Anwendung.
/// </summary>
[STAThread]
static void Main()
{
Application.Run(new Form1());
}
/* Wir Beladen oder frischen damit unser Datenfrontend auf das
betrifft folgende Aktionen:
-Löschen, Einfügen Editieren Aktualisieren
*/
private void DatenLaden()
{
dataSet11.Clear();
oleDbDataAdapter1.Fill(dataSet11);
txtThemengebiet.DataBindings.Clear();
txtThemengebiet.DataBindings.Add("Text",dataSet11.Tables["Themengebiete"], "Themengebiet");
lblDsNr.Text = (BindingContext[dataSet11.Tables["Themengebiete"]].Position + 1).ToString() + "/" + BindingContext[dataSet11.Tables["Themengebiete"]].Count.ToString();
}
private void btnVorheriger_Click(object sender, System.EventArgs e)
{
BindingContext[dataSet11.Tables["Themengebiete"]].Position--;
lblDsNr.Text = (BindingContext[dataSet11.Tables["Themengebiete"]].Position + 1).ToString() + "/" + BindingContext[dataSet11.Tables["Themengebiete"]].Count.ToString();
}
private void btnNaechster_Click(object sender, System.EventArgs e)
{
BindingContext[dataSet11.Tables["Themengebiete"]].Position++;
lblDsNr.Text = (BindingContext[dataSet11.Tables["Themengebiete"]].Position + 1).ToString() + "/" + BindingContext[dataSet11.Tables["Themengebiete"]].Count.ToString();
}
/* Jemand editiert eine Datensatz und aktualisiert dann die daten */
private void btnAktualisieren_Click(object sender, System.EventArgs e)
{
int PositionsMerker = BindingContext[dataSet11.Tables["Themengebiete"]].Position;
try
{
dataSet11.Tables["Themengebiete"].BeginInit();
dataSet11.Tables["Themengebiete"].Rows[PositionsMerker]["Themengebiet"] = txtThemengebiet.Text;
dataSet11.Tables["Themengebiete"].Rows[PositionsMerker].EndEdit();
DataSet ds = dataSet11.GetChanges(); // Änderungen holen
dataSet11.Merge(ds); // Änderungen mit bestehenden Datenset verknüpfen
/* aktualisierte Daten der Db bekanntgeben */
oleDbDataAdapter1.Update(dataSet11);
dataSet11.AcceptChanges();
}
catch
{
dataSet11.RejectChanges();
}
finally
{
/* Unser GUI aufrischen */
DatenLaden();
}
}
/* Wir erzeugen einen neuen Datensatz */
private void btnNeuerDatensatz_Click(object sender, System.EventArgs e)
{
try
{
DataRow dr = dataSet11.Tables["Themengebiete"].NewRow();
dr["Themengebiet"] = txtThemengebiet.Text;
dataSet11.Tables["Themengebiete"].LoadDataRow(dr.ItemArray, false);
/* aktualisierte Daten der Db bekanntgeben */
oleDbDataAdapter1.Update(dataSet11);
}
catch
{
dataSet11.RejectChanges();
}
finally
{
/* Unser GUI aufrischen */
DatenLaden();
}
}
private void btnLöschen_Click(object sender, System.EventArgs e)
{
int PositionsMerker = BindingContext[dataSet11.Tables["Themengebiete"]].Position;
try
{
dataSet11.Tables["Themengebiete"].Rows[PositionsMerker].Delete();
oleDbDataAdapter1.Update(dataSet11);
dataSet11.AcceptChanges();
}
catch
{
dataSet11.RejectChanges();
}
finally
{
/* Unser GUI aufrischen */
DatenLaden();
}
}
}
}
Ich hoffe Dir hilft es als Orientierungsbeispiel!
Grüsse