string myConnectionString = "server=localhost; database=testDB; uid=root; pwd=abc!23";
103
мнйШямшгc .f t ..........
fi 3 Proper
# ai ftefe i J5 "po.ml.
P.SDiJd
'ЩFo' Л cfen
’1 For
Шft-esra!
«Piiifcn..
i Ad
\ -f" .iwiaefcren», . AcidWebRefere^cs-
■IB: dsss D*3g№»
iVepetWs ОеЬ-оЩ Сонв«±СshaH •ft Cut
0 Т'Ът . ; й§ ■
1: ■:.а. properties
q tx. - i l " v r A i^v---- •::•■• :••I ' v w i m v " ' :■
rasm. Reference qo'sbish
Quyidagi C# dasturi MySqlConnection obvektini yaratish, ulanish satrini tayinlash va ulanishni ochish uchun ishlatiladi.
using System;
using System. Windows.Forms; using MySql.Data.MySqlClient; namespace WindowsAppIicationl
if
public partial class Form 1 : Form
(
public Form 10
/
InitializeComponentQ;
f\
private void button !_Cli.ck(object sender, EventArgs e)
/
string cunnetionString —null; MySqlConnection cnn ;
104
connetionString =
"ser\-er-localhost;d-atahase=testDB;uid-root;pwd=abcl23;"; cnn - new MySqlConnection(cometionString);
try
{
cnn.Open!);
MessageBox.Show ("Connection Open I "); ctm.Close();
ti
catch (Exception ex)
I/
MessageBox.Show("Can not open connection ! ");
>i
jI
ii
TCP portini ko‘rsatish
myConnectionString="Server=myServerAddress;Port=1234;Data base=testDB;Uid=root:Pwd=abel23;
MySQL Connector / Net. Microsoft mahsulotlarining, shu jumladan Microsoft VistiaJ Web Developer-ning Express versiyalarini qoTlab- quvvatlamaydi.
Biz dasturimizda foydalanishimiz mumkin bo'Igan jadvalni yaratamiz:
Create Table Tablelnfo
(
id A VTO A VTOMOZALARNI NULL EMAS, nomi VARCHAR (30),
yosh INT PRIMARY KEY (id)
);
Tlovani ulagich o'rnatilmagan boshqa kompyuterlarda ishlatish uchun biz ma’limiotnomadan DLL yaratishiniiz kerak. Buning uchun biz lovihamizdagi mos yozuvlar nomini sichqonchaning o‘ng tugmasi 105
bilan bosamiz va uning nusxasida lokal ravishda haqiqiyligini o‘rnatamiz:
^ Dll qo'shiladi.
^ Smfni yaratiladi.
Ma'lumotlar bazasiga ulanish uchun yangi sinf yaratish va ma'lumotlar bazasiga kiradigan koddan ajratish doimo yaxshi usul sanaladi, Bu sizning kodingizni tushunarli, o‘qilishi osori va samaraliroq bo‘lishiga yordam beradi.
MySql.Data. MySqlCiientdan foydalanish; Foydalanadigan o‘zgaruvchini e'lon qilish va ishga tushirish:
ulanish : ma'lumotlar bazasiga ulanislmi ochishda foydalaniladi.
server: bizning serverimiz joylashgan joym ko'rsatadi, bizning holimizda , bu localhost.
Ma'lumotlar bazasi : bu biz foydalanadigan ma'lumotlar bazasming nomi, bizning holimizda b iz oldinroq yaratgan ma'lumotlar bazasi, bu connectcsharptomysql .
uid : bu bizning MySQL foydalanuvchi nomimiz.
'*• parol : bu bizning MySQL parolimiz.
connectionStnng : ma'lumotlar bazasiga ulanish uchun ulanish satrini o‘z ichiga oladi va ulanish o'zgaruvchisiga tayinlanadi.
class DBConnect
If
private MySqlCunnection connection; private string server;
private string database; private string uid; private string password;
//Constructor public DBConnectO
гf
ImtializeQ;
}
private void InitializeQ
)f
server = "localhost";
database = "connectcsharptomysql"; uid = "username";
password - "password";
siring connectionString;
connectionString = "SERVER=" + server +• +
"DATABASE^" +
database + -» " [ / / £ > = " + t/ к / -f + "PASSWORD -"
4* password +
connection = new MySqlConnection(connectionString);
/<
//open connection to database private bool OpenConnection()
/
>i
//Close connection
private bool CloseConnection()
i
Jf
/!insert statement
public void Insert()
I
} I
public void Update()
/)
f)
public void Delete(j
)/
(/
//Select statement
public List [J SelectQ
i
\
/\
//Count statement public int Countf)
J07
г/ ti
//Backup
public void Backup/)
>/
i(
//Restore
public void Restore()
\i (i
/(
Ulanishni ochish va yopish.
Biz doimo jadvallanmizga murojaat qihshdan oldin ulanishni ochishimiz va uni tugatgandan so‘ng darhol o'chirib qo'yishimiz kerak, bu resurslarni bo'shatish va bu ulanish endi kerak emasligini bildiradi.
Ma'lumotlar bazasiga ulanishni ochish va yopish juda oson, ammo har doim ulanishni ochmasdan yoki yopmasdan oldin istisnolardan foydalanish, xatolarni ko‘rish va ular bilan shug'ullanish yaxshidir.
private bool OpenConnectionQ
t
try
{
connection. OpenQ;
return true;
)
(
catch (MvSqlException ex)
/
switch (ex. Num her)
/
x
case 0:
AdessageBox. Show ("Cannot conned to server. Contact administrator");
break; case 1045'
108
MessageBox.Show("Invalid username/password, please try
again "):
break;
}
return false;
private bool CloseConnectionO
/
tiy
tf
connection. CloseQ; return true;
/
catch (MySqiException ex)
I(
MessageBox.Show(ex.Message); return false;
I
f
DML bilan ishlash (qo'shish, yangilash, tanlash, o'chirish). Odatda, kiritish, yangilash va o ‘chirish ma'lumotlar bazasida
ma'kimotlarni yozish yoki o‘zgartirish uchun ishlatiladi, Select esa ma'lumotlarni o‘qish uchun ishlatiladi.
Shu sababli, biz ushbu so4rovlami bajarish uchun har xil usullarga egamiz.
Usullari quyidagilar:
ExecuteNonQuery : misol uchun, har qanday ma'lumotlarni qaytarib bo‘lmaydi buyruqni bajarishi uchun ishlatiladi, Insert, Update yoki Delete.
ExecuteReader : 0 yoki undan ortiq yozuvlarni qaytaradigan buyruqni bajarish uchun foydalaniladi, masalan Select.
ExecuteScalar : Faqat I qiymatni qaytaradigan buyruqni bajarish uchun foydalaniladi, masalan, Hisoblashni tanlang ( *).
109
public void InsertQ
/
siring query = "INSERT INTO tableinfo (name, age) VALUES('John Smith', '33')";
i f (this.QpenConnectionQ = = true)
i)
//create command and assign the query and connection from the
constructor
MySqlCommand cmd = new MySqlCommandf query, connection);
cmd. ExecuteNon Query();
this. CloseConnection ();
I)
i
public void UpdateQ
>
string query - "UPDATE tableinfo SETname=-'Joe', a g e - 22'
■‘'HERE name-'John Smith'";
// fthis.OpenConnecti.onO = = true)
t
//create mysql command
MySqlCommand cmd = new MySqlCommand();
//Assign the query using CommandText cmd.CommandText = query;
//Assign the connection using Connection cmd. Connection = connection;
//Execute query cmd. ExecuteNon Query 0;
//close connection this.CloseConnection();
(I
//Delete statement public void Delete(') I
string query = "DELETE FROM tableinfo WHERE name='John
Smith"';
110
if (this.OpenConnecfionQ = = true)
(
\
MySqlCommand cmd = new MySqlCommand(query, connection);
cmd.ExecuteNonOueiyQ; this.CloseConnection();
?
MySQLni С - H- ga ulash.
Endi MySQLni С ++ ga ulashni ко‘rib chiqamiz.
SQL (Structured Query Language) - bu to‘rtinchi avlod tili (4GL'i bo lib. u MBBTni aniqlash, boshqarish va boshqarish uchun ishlatiladi.
( ' ■ ! SQLAPI i lib 1 libsqlapiddll. a
C: \ Program Files \ CodeBiocks i MinGW \ lib \ libuser32.a C: 1 Program Files \ CodeBiocks \ MinGW \ lib \ libversion.a C: \ Program Files I CodeBiocks \ MinGW I lib 1 liboleaut:l2.a C: \ Program Files i CodeBiocks 1 MinGW 1 lib \ libole32.a
Yuqoridagi kod C/C ++ dasturini SQLAPI bilan ulash uchun kutubxona fayllarini qo‘shish uchun ishlatiladi.
Asosan, ikkita bosqich mavjud:
1. Ma'lumotlar bazasiga ulanish (va xatolar bilan ishlov berish)
// Ma'lumotlar bazasiga ulanish uchun С. ++ pgroram (va xatolar bilan ishlash)
#include
#include /7 main SQLAPI++ header int main(int argc, char* argv[])
{
/ / create connection object to connect to database SAConnection con;
|