You are on page 1of 16

MySQL

MySQL е најпопуларниот open source систем за управување со бази на податоци (СУБП).


Ова е СУБП кој поддржува пристап до базата од повеќе корисници и апликации во исто
време. MySQL е дел од многу популарната платформа LAMP (Linux, Apache, MySQL,
PHP). Во моментов сопственик на MySQL е Oracle. MySQL базата е достапна на
најважните оперативни системи, како BSD Unix, Linux, Windows или Mac. Wikipedia и
YouTube користат MySQL. Овие сајтови поддржуваат милиони упити секој ден.

ADO.NET е важен дел од .NET околината. Тоа е спецификација која го опишува пристапот
до релационите бази, XML фајловите и други податоци за апликациите. MySQL
Connector/Net ја имплементира ADO.NET спецификацијата за MySQL базата. Тоа е
драјвер напишан во C# кој е достапен за сите .NET јазици.

Основни елементи на .NET моделот за управување со податоци се Connection, Command,


DataReader, DataSet и DataProvider. Connection креира врска до базата. Објектот
Command извршува SQL изрази. DataReader чита стримови од податоци. DataSet објектот
се користи за offline работа со податоците. Тоа е неконекциски модел на работа со
податоците. Слично и DataSet се користи за работа со голема количина податоци. Двата
објекти DataSet и DataReader се користат за работа со податоците но под различни
услови. Кога е потребно само да се прочитаат резултатите на упитот подобро е да се
користи DataReader, а кога е потребна посложена обработка на податоците или се
користат Winforms контроли подобро е да се користи DataSet.

За пишување програми во C# кои ќе користат MySQL база потребно е инсталирате


MySQL и MySQL Connector/NET. Може да ги симнете од следната адреса
http://dev.mysql.com/downloads
За користење на методите од MySQL Connector/NET треба да додадете референца до
конекторот. Кликнете со десното копќе на глушецот врз проектот во Solution Explorer и
кликнете врз Add Reference… Во таб-от .NET изберете MySql.Data и притиснете ok.

Во продолжение се претставени програми во C# кои користат MySQL база на податоци.

Во програмите потребно е да севкористи именски простор MySql.Data.MySqlClient кој се


внесува со директивата using.
Потоа треба да се креира стринг за поврзување со базата кој содржи име на хост,
корисничко име и шифра и име на базата

string cs = @"server=localhost;userid=user12;
password=34klq*;database=mydb";

да се креира објект од класата MySqlConnection


MySqlConnection conn = null;
conn = new MySqlConnection(cs);

и да се отвори конекцијата со методот open().


conn.Open();

1
Во блокот try се пишува кодот кој се надгледува и во кој може да се јави исклучок. Во
блокот catch се обработува генерираниот исклучок. Блокот finaly се извршува без разлика
дали се јавил или не се јавил исклучок. Обично во овој блок се затвара конекцијата со
базата
conn.Close();

Во програмата која следи се тестира дали може да се воспостави конекција со базата и се


испишува верзијата на MySQL.

using System;
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();
Console.WriteLine("MySQL version : {0}", conn.ServerVersion);

} catch (MySqlException ex)


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

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

2
using System;
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 VERSION()";


MySqlCommand cmd = new MySqlCommand(stm, conn);
string version = Convert.ToString(cmd.ExecuteScalar());
Console.WriteLine("MySQL version : {0}", version);

} catch (MySqlException ex)


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

} finally
{

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

}
}
}

3
//Однапред подготвени SQL изрази

using System;
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();

MySqlCommand cmd = new MySqlCommand();


cmd.Connection = conn;
cmd.CommandText = "INSERT INTO Authors(Name) VALUES(@Name)";
cmd.Prepare();

cmd.Parameters.AddWithValue("@Name", "Trygve Gulbranssen");


cmd.ExecuteNonQuery();

} catch (MySqlException ex)


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

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

}
}
}

4
//Користење на класа MySqlDataReader

using System;
using MySql.Data.MySqlClient;

public class Example


{

static void Main()


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

MySqlConnection conn = null;


MySqlDataReader rdr = null;

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

string stm = "SELECT * FROM Authors";


MySqlCommand cmd = new MySqlCommand(stm, conn);
rdr = cmd.ExecuteReader();

while (rdr.Read())
{
Console.WriteLine(rdr.GetInt32(0) + ": "
+ rdr.GetString(1));
}

} catch (MySqlException ex)


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

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

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

}
}
}

5
using System;
using MySql.Data.MySqlClient;

public class Example


{

static void Main()


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

MySqlConnection conn = null;


MySqlDataReader rdr = null;

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

string stm = @"SELECT Name, Title From Authors,


Books WHERE Authors.Id=Books.AuthorId";

MySqlCommand cmd = new MySqlCommand(stm, conn);


rdr = cmd.ExecuteReader();

Console.WriteLine("{0} {1}", rdr.GetName(0),


rdr.GetName(1).PadLeft(18));

while (rdr.Read())
{
Console.WriteLine(rdr.GetString(0).PadRight(18) +
rdr.GetString(1));
}

} catch (MySqlException ex)


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

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

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

}
}
}

6
//Primer so DataSet

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();
}

}
}
}

7
//Пример со 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
{

8
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());
}
}

9
Programa22

using System;
using MySql.Data.MySqlClient;

public class Example


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

MySqlConnection conn = null;

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

MySqlCommand cmd = new MySqlCommand();


cmd.Connection = conn;
cmd.CommandText = "INSERT INTO Authors(Name) VALUES(@Name)";
cmd.Prepare();

cmd.Parameters.AddWithValue("@Name", "Trygve Gulbranssen");


cmd.ExecuteNonQuery();

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

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

}
}
}

10
Programa 222

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

public class Example


{
static void Main()
{
string cs = @"server=localhost;userid=user12;
password=user12;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)
{

11
conn.Close();
}

}
}
}
Programa 2222

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;

12
password=user12;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());
}
}

13
using System;
using System.Collections.Generic;
using System.Text;
using MySql.Data.MySqlClient;

namespace CSharpMySql
{
class Program
{
static string getString(string msg)
{
Console.Write(msg);
return Console.ReadLine();
}
static void Main(string[] args)
{
String str = @"server=localhost;database=nova;userid=root;
password=root;";
MySqlConnection con = null;
MySqlDataReader reader = null;
try
{
con = new MySqlConnection(str);
con.Open(); //otvaranje na konekcija

//Ova e mysql komanda so koja se izveduva upit vrz bazata


String cmdText = "INSERT INTO podatoci
VALUES(@br,@ime,@prez)";
MySqlCommand cmd = new MySqlCommand(cmdText, con);
cmd.Prepare();

int br1 = 0;
String ime1 = string.Empty;
String prez1 = string.Empty;

ime1 = getString("Vnesete ime: ");


prez1 = getString("Vnesete prezime: ");
Console.Write("Vnesete sifra: ");
br1 = System.Int16.Parse(Console.ReadLine());

//vrednostite se povrzuvaat so placeholder-ite


cmd.Parameters.AddWithValue("@br", br1);
cmd.Parameters.AddWithValue("@ime", ime1);
cmd.Parameters.AddWithValue("@prez", prez1);
cmd.ExecuteNonQuery(); //izvrsuvanje na mysql komanda
Console.WriteLine("Vneseni podatoci vo baza!\n");

Console.WriteLine("Vrakanje podatoci od baza!");


//Postavuvanje upit vrz bazata so koristenje MySqlDataReader
cmdText = "SELECT * FROM podatoci";
cmd.CommandText = cmdText;
reader = cmd.ExecuteReader();

14
Console.WriteLine("id|ime|prez");
while (reader.Read())
{
Console.WriteLine(reader.GetString(0) + "|" +
reader.GetString(1) + "|" + reader.GetString(2));
}
reader.Close();

//primer za UPDATE
String ime2 = "neznam";
cmd = new MySqlCommand("UPDATE podatoci SET ime='" + ime2 +
"' WHERE ime='" + ime1 + "'", con);
cmd.ExecuteNonQuery();

Console.WriteLine("Tabelata podatoci po update!");


cmdText = "SELECT * FROM podatoci";
cmd.CommandText = cmdText;
reader = cmd.ExecuteReader();

Console.WriteLine("id|ime|prez");
while (reader.Read())
{
Console.WriteLine(reader.GetString(0) + "|" +
reader.GetString(1) + "|" + reader.GetString(2));
}
reader.Close();

//primer za DELETE
cmd = new MySqlCommand("DELETE FROM podatoci WHERE id ='"+
br1+"'", con);
cmd.ExecuteNonQuery();

Console.WriteLine("Tabelata podatoci po delete!");


cmdText = "SELECT * FROM podatoci";
cmd.CommandText = cmdText;
reader = cmd.ExecuteReader();

Console.WriteLine("id|ime|prez");
while (reader.Read())
{
Console.WriteLine(reader.GetString(0) + "|" +
reader.GetString(1) + "|" + reader.GetString(2));
}
}
catch (MySqlException err)
{
Console.WriteLine("Greska: " + err.ToString());
}
Finally {
if (con != null) {
con.Close(); //zatvaranje na konekcija
}
if (reader != null){
reader.Close();
}
}

15
Console.WriteLine("Pritisnete bilo koe kopce za izlez.");
Console.ReadLine();
}
}
}

16

You might also like