Am einfachsten scheint mir, ein SqlDataAdapter zu verwenden in meinen Fall ein MysqlDataAdapter.
Ich gebe die Daten an eine DataTable weiter mit der Methode Fill(). Mit der Methode Update() kann ich die Datensätze die ich in der DataTable geändert habe mit MySqlDataAdapter in der Datenbank aktualisieren sei es es sind neue Daten hinzugekommen oder gelöscht/geändert worden. Die Methode Update scheint aber nicht immer zu funktionieren, je nach Lust und Laune denke ich, denn ich konnte keinen Zusammenhang für die Änderung die ich am Code vorgenommen habe feststellen.
Klasse DbOp
Code: Alles auswählen
using System;
using MySql.Data.MySqlClient;
using System.Data;
namespace database
{
/// <summary>
/// Description of DbOp.
/// </summary>
public class DbOp
{
private string table;
private MySqlConnection con;
private string login =
"SERVER=localhost;" +
"DATABASE=test;" +
"UID=root;" +
"Password=;";
private MySqlDataAdapter adapter;
private string opString = "select * from test";
public DbOp(string table_name)
{
table = table_name;
con = new MySqlConnection(login);
adapter = new MySqlDataAdapter(opString, con);
initCommands();
}
public void Fill(ref DataTable tabelle)
{
adapter.Fill(tabelle);
}
public void Update(ref DataTable tabelle)
{
adapter.Update(tabelle);
}
private void initCommands()
{
adapter.InsertCommand = new MySqlCommand("Insert into test(id, name) values(@id, @name)", con);
adapter.InsertCommand.Parameters.Add("@id", MySqlDbType.Int32);
adapter.InsertCommand.Parameters.Add("@name", MySqlDbType.Text, 65535, "name");
}
}
}

MainForm
Code: Alles auswählen
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Windows.Forms;
using MySql.Data.MySqlClient;
using System.Data;
namespace database
{
/// <summary>
/// Description of MainForm.
/// </summary>
public partial class MainForm : Form
{
DbOp operation;
DataTable tabelle = new DataTable();
public MainForm()
{
//
// The InitializeComponent() call is required for Windows Forms designer support.
//
InitializeComponent();
//
// TODO: Add constructor code after the InitializeComponent() call.
//
operation = new DbOp("test");
operation.Fill(ref tabelle);
dataGridView1.DataSource = tabelle;
dataGridView1.Columns["id"].ReadOnly = true;
}
void DataGridView1UserAddedRow(object sender, DataGridViewRowEventArgs e)
{
}
void DataGridView1CellEndEdit(object sender, DataGridViewCellEventArgs e)
{
operation.Update(ref tabelle);
}
}
}