Inne działy

 

 

DataSet & MySqlDataAdapter

 

Element DataSet jest to kopia danych i relacja między danymi z tabel bazy danych. Zostanie utworzona w pamięci i używana, gdy potrzebne jest intensywne przetwarzanie na danych lub gdy będziemy chcieli powiązać tabele danych formantu WinForm. Gdy odbywa się przetwarzanie, zmiany są zapisywane do źródła danych. MySqlDataAdapter jest pośrednikiem między zestawem danych i źródłem danych. Wypełnia elementu DataSet i rozwiązuje aktualizacje ze źródłem danych.

 

using System;
using System.Data;
using MySql.Data.MySqlClient;

public class Example
{

static void Main()
{
string cs = @"server=localhost;userid=user12;
password=34klq*;database=mydb";

MySqlConnection conn = null;

try
{

conn = new MySqlConnection(cs);
conn.Open();

string stm = "SELECT * FROM Authors";
MySqlDataAdapter da = new MySqlDataAdapter(stm, conn);

DataSet ds = new DataSet();

da.Fill(ds, "Authors");
DataTable dt = ds.Tables["Authors"];

dt.WriteXml("authors.xml");

foreach (DataRow row in dt.Rows)
{
foreach (DataColumn col in dt.Columns)
{
Console.WriteLine(row[col]);
}

Console.WriteLine("".PadLeft(20, '='));
}

} catch (MySqlException ex)
{
Console.WriteLine("Error: {0}", ex.ToString());

} finally
{
if (conn != null)
{
conn.Close();
}

}
}
}

 

Wyświetlamy autorów z tabeli Authors. Możemy również zapisać je w pliku XML. W tym czasie używamy obiektów MySqlDataAdapter i zestawu danych.

MySqlDataAdapter da = new MySqlDataAdapter(stm, conn);

Tworzony jest obiekt MySqlDataAdapter. Pobiera ona SQL i połączenie jako parametry.

DataSet ds = new DataSet();

da.Fill(ds, "Authors");

Tworzymy i wypełniamy DataSet

DataTable dt = ds.Tables["Authors"];

Otrzymujemy tabelę o nazwie " Authors ". Daliśmy DataSet tylko jedną tabelę, ale może zawierać wiele tabel.

dt.WriteXml("authors.xml");

Tworzymy dane do pliku xml.

foreach (DataRow row in dt.Rows)
{           
    foreach (DataColumn col in dt.Columns)
    {
      Console.WriteLine(row[col]);
    }
   
    Console.WriteLine("".PadLeft(20, '='));
}
 
Możemy wyświetlić zawartość tabeli Authors do terminala. Na przechodzenie przez dane, możemy wykorzystywać wiersze i kolumny obiektu DataTable.
________________________________________

W następnym przykładzie chcemy powiązać tabelę z formantem WinForm DataGrid.

using System;
using System.Windows.Forms;
using System.Drawing;
using System.Data;
using MySql.Data.MySqlClient;


class MForm : Form
{

private DataGrid dg = null;
private MySqlConnection conn = null;
private MySqlDataAdapter da = null;
private DataSet ds = null;

public MForm()
{

this.Text = "DataGrid";
this.Size = new Size(350, 300);

this.InitUI();
this.InitData();

this.CenterToScreen();
}

void InitUI()
{
dg = new DataGrid();

dg.CaptionBackColor = System.Drawing.Color.White;
dg.CaptionForeColor = System.Drawing.Color.Black;
dg.CaptionText = "Authors";

dg.Location = new Point(8, 0);
dg.Size = new Size(350, 300);
dg.TabIndex = 0;
dg.Parent = this;
}

void InitData()
{
string cs = @"server=localhost;userid=user12;
password=34klq*;database=mydb";

string stm = "SELECT * FROM Authors";


try
{
conn = new MySqlConnection(cs);
conn.Open();
ds = new DataSet();
da = new MySqlDataAdapter(stm, conn);
da.Fill(ds, "Authors");

dg.DataSource = ds.Tables["Authors"];

} catch (MySqlException ex)
{
Console.WriteLine("Error: " + ex.ToString());

} finally
{
if (conn != null)
{
conn.Close();
}
}
}
}

class MApplication
{
public static void Main()
{
Application.Run(new MForm());
}
}

 

W tym przykładzie możemy powiązać tabelę Authors z formantem WinForm DataGrid.

using System.Windows.Forms;
using System.Drawing;

Te dwa obszary nazw są graficznym interfejsem użytkownika.

this.InitUI();
this.InitData();

Wewnątrz metody InitUI() możemy zbudować interfejs użytkownika. W metodzie InitData() możemy się połączyć z bazą danych, Pobrać dane do zestawu danych i powiązać formant DataGrid.

dg = new DataGrid();

Formant DataGrid zostanie utworzony.

string stm = "SELECT * FROM Authors";

Możemy wyświetlić dane z tabeli Authors w kontrolce DataGrid.

dg.DataSource = ds.Tables["Authors"];

Możemy także powiązać właściwości DataSource formantu DataGrid wybranej tabeli.

$ dmcs -r:/usr/lib/cli/MySql.Data-6.1/MySql.Data.dll -r:System.Windows.Forms.dll
    -r:System.Drawing.dll -r:System.Data.dll dataadapter2.cs
 
Aby skompilować ten przykład, musi zawierać dodatkowe biblioteki DLL. Biblioteka dll dla łącznika MySQL, WinForm, Drawing i Data.

Zobacz nasze wszystkie kursy

WWW


HTML
HTML - Znaczniki
CSS - Tutorial
CSS - Selektory
PHP
JavaScript

XML

XSLT

Bazy danych


SQL
SQLite
MySQL
PostgreSQL

 

 

Programowanie


C
C++
C#
Java
VisualBasic
Python

Linux


Podstawy Linuxa
Bash
Linuks artykuły

Windows


Excel funkcje
Windows wskazówki
Outlook

Pozotałe działy


Programy
Rozrywka

 

 

 

This email address is being protected from spambots. You need JavaScript enabled to view it.