Jika Anda tidak hanya bekerja di perusahaan grup besar, Anda pasti akan memiliki kesempatan untuk berhubungan dengan MySQL. Meskipun tidak mendukung pemrosesan transaksi dan prosedur tersimpan, fungsi yang disediakannya pasti akan memenuhi sebagian besar kebutuhan Anda , MySQL yang ringkas juga memiliki beberapa keunggulan unik. Dalam beberapa kasus, kecepatannya bahkan lebih cepat dibandingkan database besar.
Jadi bagaimana cara mengakses database MySQL di .NET? Mungkin banyak orang akan langsung berkata: Gunakan OLEDB, namun nyatanya menggunakan .NET OleDb Data Provider tidak dapat mengakses MySQL. Jika Anda menggunakannya, sistem akan meminta Anda: "Net Data OLE DB Provider (System.Data.Odbc) tidak Mendukung penyedia MSDASQL (penyedia Microsoft OLE DB untuk driver Odbc). Saya tidak tahu kenapa. Menurut penulis MySQLDriverCS, itu "ditinggalkan oleh pemiliknya".
Untungnya, kami memiliki opsi lain. Berikut dua cara untuk mengakses database MySQL.
Menggunakan ODBC.NET
ODBC.NET (nama lengkap ODBC .NET Data Provider) adalah komponen add-on .NET Framework gratis yang perlu diunduh dari situs web Microsoft. Alamat unduhannya adalah: http://download.microsoft.com /download/ dasdk/Install/1.0.4030.0/W98NT42KMeXP/EN-US/odbc_net.msi , yang mengharuskan sistem menginstal MDAC 2.7 atau lebih tinggi. Selain itu, Anda juga perlu menginstal driver ODBC untuk MySQL. Alamat downloadnya adalah: http://www.mysql.com/downloads/api-myodbc-2.50.html Manajer Sumber Data".
Dari segi desain objek, ODBC.NET sama dengan OLEDB, SQL, dll yaitu OdbcConnection, OdbcCommand, OdbcDataAdapter, OdbcDataReader. Pemakaiannya sama persis Jika ingin menggunakan ODBC .NET untuk menggantikan OleDb sebelumnya. Penyedia Data .NET, sebenarnya Anda dapat sepenuhnya memodifikasi program Anda dengan mencari dan mengganti.
Berikut ini contoh kodenya:
coba
{
string constr = "DSN=MySQL;" + "UID=;" +"PWD=";
samb = new OdbcConnection(constr);
samb.Buka();
string query = "masukkan ke dalam nilai test.dbtable10,'disksidkfsdi', 'asdfaf', 'adsfasdf')";
string tmp = nol;
OdbcCommand cmd = new OdbcCommand(kueri, samb.);
untuk(int saya = 0; saya < 100000; saya++)
{
cmd.ExecuteNonQuery();
}
cmd.Buang();
samb.Tutup();
query = "pilih * dari test.dbtable";
OdbcCommand cmd2 = newOdbcCommand(query, conn);
samb.Buka();
Pembaca OdbcDataReader = cmd2.ExecuteReader();
while(pembaca.Baca())
{
tmp = pembaca[0].ToString();
tmp = pembaca[1].ToString();
tmp = pembaca[2].ToString();
tmp = pembaca[3].ToString();
}
samb.Tutup();
query = "hapus dari test.dbtable";
OdbcCommand cmd3 = newOdbcCommand(kueri, samb.);
samb.Buka();
cmd3.ExecuteNonQuery();
}
menangkap (Pengecualian ex)
{
MessageBox.Show(mis.Pesan);
}
Akhirnya
{
samb.Tutup();
}
Siapapun yang pernah menulis aplikasi database dalam C# pasti tahu bahwa kode di atas melakukan operasi memasukkan data dan membaca data seratus ribu kali, dan akhirnya menghapus semua record data.
Kebanyakan orang mungkin tidak mengetahui hal ini
saat menggunakan MySQLDriverCS
. MySQLDriverCS adalah driver .NET gratis dan open source untuk database MySQL.Sama seperti Penyedia Data Sql .NET untuk Sql Server, ini dirancang khusus untuk MySQL dan dapat disebut Penyedia Data MySQL .NET. Tidak perlu menyiapkan sumber data ODBC tambahan untuk menggunakannya. Pada dasarnya, selama Anda dapat terhubung ke MySQL, Anda dapat mengaksesnya melalui MySQLDriverCS.
MySQLDriverCS adalah proyek di SourceForge.NET, tetapi karena alasan yang tidak diketahui, situs web ini tidak dapat diakses di Tiongkok.
Berikut contoh kode penggunaan MySQLDriverCS:
MySQLConnection conn = null;
mencoba
{
string connstr = "Sumber Data=MySQL;Kata Sandi=root;ID Pengguna=root;Lokasi=localhost";
samb = koneksi MySQL baru(konstr);
samb.Buka();
string query = "masukkan ke dalam nilai test.dbtable(10, 'disksidkfsdi', 'asdfaf', 'adsfasdf')";
string tmp = nol;
MySQLCommand cmd = new MySQLCommand(query, conn);
untuk(int saya = 0; saya < 100000; saya++)
{
cmd.ExecuteNonQuery();
}
cmd.Buang();
samb.Tutup();
query = "pilih * dari test.dbtable";
MySQLCommand cmd2 = new MySQLCommand(query, conn);
samb.Buka();
Pembaca MySQLDataReader = cmd2.ExecuteReaderEx();
while(pembaca.Baca())
{
tmp = pembaca[0].ToString();
tmp = pembaca[1].ToString();
tmp = pembaca[2].ToString();
tmp = pembaca[3].ToString();
}
samb.Tutup();
query = "hapus dari test.dbtable";
MySQLCommand cmd3 = new MySQLCommand(query, conn);
samb.Buka();
cmd3.ExecuteNonQuery();
}
menangkap (Pengecualian ex)
{
MessageBox.Show(mis.Pesan);
}
Akhirnya
{
samb.Tutup();
}
Hampir sama persis dengan kode di atas. Perbedaannya adalah Odbc telah menjadi MySQL. Selain itu, satu hal yang perlu diperhatikan adalah metode ExecuteReader dari Command telah menjadi ExecuteReaderEx di MySQLDriverCS dokumen terlampir untuk perkenalan.
Pengujian kinerja
Beberapa pembaca sebenarnya telah melihat tujuan dari kode yang saya tulis di atas, sebenarnya tujuannya adalah untuk melakukan pengujian kinerja. Waktu eksekusi kedua potongan kode di atas adalah: sekitar 24 detik untuk ODBC.NET dan sekitar 17 detik untuk MySQLDriverCS. Hasilnya tidak mengejutkan. Sebagai driver data khusus untuk MySQL, wajar jika MySQLDriverCS jauh lebih cepat dibandingkan ODBC.NET.
Ringkasan
Artikel ini memperkenalkan dua metode akses database MySQL dan melakukan tes sederhana terhadap kinerjanya. Saya harap artikel ini dapat memberikan referensi berharga kepada pembaca saat menggunakan database MySQL untuk mengembangkan aplikasi .NET.