خيلي از دوستان اين روزها به فكر استفاده از ديتابيسهاي جديد و دور كردن خود از SQL Server  هستند .

يكي از اين نوع ديتا بيسها MySql  هست كه يك نوع بانك اطلاعاتي باز متن هست . اما چطور ميتوانيم كد منبع خود را به اين پايگاه داده متصل كنيم .

با من  تا انتهاي اين مقاله همرا ه باشيد .

حتما به نتيجه خواهيد رسيد.

در ابتداي امر ميبايستmysql.net conector ‌رو دريافت كرده و نصب كنيد.پس از نصب اين برنامه ديگر كليه تنظيمات براي ديگر پروژه هاي شما قابل اعمال است .

MySQL Connector/Net

آماده سازي بانك اطلاعاتي MYSQL  :
كار زياد خاصي با MySQL .NET نداريد بجز اينكه بانك خودتون رو آماده كنيد براي اينكار بايد يك جدول داشته باشيد . . . .من بصورت پيشفرض يك مثال براي ساخت جدول در mysql ‌ميزنم .البته اگر با phpmyadmin‌كار كرده باشيد اين كار بازهم ساده تر خواهد شد.

Create database aec;
Grant insert, update, select, delete on aec.* to ‘aec_user’@’localhost’ identified by ‘aec’;
Create table aec.samples (
id int auto_increment,
description varchar(255),
site_id int,
received datetime,
processed datetime,
primary key (id));
Insert into aec.samples (description, site_id, received) values (‘clay desposit’, 27, now());
Insert into aec.samples (description, site_id, received) values (‘burial urn’, 103, now());

خوب حالا تنها مشكل ما اين هست كه چطور ميشه به ديتابيس متصل شد :

افزودن MYSQL conector Refrence‌به پروژه :

mysql connector‌خودش به صورت اتوماتيك به پروژه اضافه نميشه بلكه ما بايد اينكار رو به صورت دستي انجام بديم .و البته اين بسنگي به IDE  داره كه شما استفاده ميكنيد مثلا اين راه :project>refrences>mysql.data‌را از ليست انتخاب نماييد.

بارگذاري mysql connector در c# :

حالا نوبت به مرحله تعريف عناصر منبع mysql در كد شما ميرسه :

using MySql.Data.MySqlClient;

در اين مثال Dataset  مورد استفاده هست بنابر اين System Data object ميبايست به شكل زير مورد دستيابي قرار گيرد:

using System;
using System.Data;
:براي ساختن فرم هم  اينچنين عمل ميكنيم
using System.Windows.Forms;
using System.Drawing;

حال پروژه تا قسمتي آماده شده.

استفاده از اطلاعات Mysql  در فرمها :

اين برنامه اي كه الان مشغول نوشتنش هستيم چه كارهايي انجام ميده :

  1. يك كانكشن با Mysql  داره
  2. يك پرس و جوي sql ‌رو به صورت مناسب نمايش ميده
  3. ديتا ها رو در يك گريد نمايش ميده

 

public class MainForm : Form {
private MySqlConnection connection = new MySqlConnection ();
private MySqlDataAdapter data = new MySqlDataAdapter ();
DataGrid gridInfo = new DataGrid();

خوب حالا براي وصل شدن به ديتابيس بايد اطلاعات بانك اطلاعاتي و نحوه اتصال اوون رو به همراه فراخواني متد   در كد قرار ميدهيم

public static void Main () {
Application.Run(new MainForm ());
}
public MainForm() {
connection.ConnectionString =
“server=localhost;”
+ “database=aec;”
+ “uid=aec_user;”
+ “password=aec;”;
connection.Open ();
حالا پرس و جو رو ايجاد ميكنيم
MySqlCommand command = connection.CreateCommand ();
command.CommandText = “select * from samples”;
و در نهايت پاسخ در ديتاست بارگذاري ميشود (توي اين مثال ما “سمپل ديتا” رو داديم (ببخشيد از اينكه فارسي نوشتم چون مشكلي بين كاراكترهاي فارسي و انگليسي بوجود اوومده و حال ندارم به دنبال رفع و محل عيب بگردم واسه همين فارسيشو مينويسم
Wink
data.SelectCommand = command;
DataSet dataset = new DataSet();
data.Fill(dataset,”sample_data”);
:گريد ميتونه محتويات ديتاست رو نمايش بده 
gridInfo.DataSource = dataset;
gridInfo.DataMember = “sample_data”;
gridInfo.Dock = DockStyle.Fill;
:در نهايت هم بايد گريد رو به فرمتون اضافه كنيد 
this.Controls.Add (gridInfo);
}
:بستن كانكشن
:كانكشن ماي اس كيو ال زماني كه ما متد پايان را فراخواني كنيم بسته خواهد شد 
~MainForm() {
connection.Close();
}
اگر مقالات بيشتري در اين زمينه نياز داريد حتمت نظر بدهيد تا مقالاتي از اين دست رو تكميل كنم 
مخصوصا ارتباط بين سي شارپ و ماي اس كيو ال
موفق باشيد.

پستهاي مشابه :

۱۴ دیدگاه به “my sql و c# چگونه ؟چطور؟”

  • سعید:

    ببخشید وقتی از طریق لینک شما وارد mysql connector می شویم از کجا باید بفهمیم کدام گزینه راانتخاب کنیم؟

  • سعید:

    ببخشید وقتی از طریق لینک شما وارد mysql connector می شویم از کجا باید بفهمیم کدام گزینه را انتخاب کنیم؟

  • abuzar:

    سلام
    من اس کیو ال 2008 دارم و اون رو نصب کردم ولی وقتی که می خوام شروع به کار کنم در پنجره ابتدایی که باید به سرور وصل شوم پیغام خطا می دهد من در خانه کار می کنم اگه لطف کنید و بگید چگونه می تونم به سرور اس کیو ال وصل بشم

    • اینجا اصلا بحث در مورد این حرفا نیست !!
      اما خوب شما میتونید راهنمای نصب رو که در اینترنت به وفوور یافت میشه رو مطالعه کنید .
      توی تنظیمات یکسری تغییراتی ایجاد شده که به احتمال زیاد راهش رو اشتباه میرید .
      مراحل نصب رو به دقت مطالعه کنید .
      با تشکر

  • سجاد:

    سلام دوستان من باsql 2008 یک بانک درست کردم با دستورات sql اطلاعات رو توش میریزم ولی واسه واکشی اطلاعات مشکل دارم اگه میشه منو راهنمایی کنین تو دستور select با سی شارپ کد نوشتم ممنو

  • محسن:

    سلام خیلی ممنون
    یاعلی

  • محسن:

    سلام خیلی ممنون
    یاعلی
    خیلی خوبه اگه ادامه پیدا کنه

  • سلام و خسته نباشید
    این کدی که شما نوشتید درست و دقیق هست ولی اگر برنامه نوشته شده ، بخاد از داخل یک شبکه که پروکسی روی اون شبکه ست شده ، عمل کنه ، قابلیت نداره ، من الان همین مشکل رو دارم
    کانکتور ذکر شده ، امکان اتصال از طریق پروکسی رو نداره
    یا اینکه من پیدا نکردم ، اگر راه حلی دارید ، ممنون میشم بهم بگید
    مرسی از شما

  • zinar:

    سلام من میخواستم از دیتا بیس یه دستگاه ساعت زنی استفاده کنم و ازش گزارشات بگیرم البته با سی شارپ . که پسوند فرم هاش frm هستش لطفا راهنمایی کنید .

    • @zinar,
      دوست عزیز خیلی سادست.
      اطلاعات رو از دیتابیس بگیرید و در گرید نمایش بدید.
      برای اینکار شما میبایست حداقل دانش در مورد زبان سی شارپ و برنامه نویسی دیتابیسی داشته باشید

  • سلام میدونم مطلب قدیمیه ولی من تازه کارم و به کمک نیاز شدید دارم
    من یه دیتا گرید ساختم که بدون استفاده از ویزارد به دیتا بیس SQL وصلش کردم با استفاده از کلاس Connection
    خیلی هم سرچ کردم به خدا. کسی میدونه چطوری و با چه کدی باید bindingSource رو به کلاس کانکشنم وصل کنم وبعد اون رو به bindingNavigator و در آخر به dataGridView ؟
    اگه میشه یه قطعه کد با توضیح بذارید ممنون میشم

  • من یه نمونه از برنامه اینجا گذاشتم که ویژوال استدیو ۲۰۱۳ و اس کیو ال ۲۰۱۴ هستش مشکل اینجاست bindingNavigator که باید تو DataGridView بعدی و قبلی و آخری و اولی بره کار نمیکنه و DataGridView هم صفحه بندی نداره کسی میتونه کمکم کنه DataGridView رو صفحه بندی کنم مثلا تو هر صفحه ۱۰ تا آیتم لود بشه و با زدن یک باتن بره صفحه بعد و یا صفحه قبل و DataGridView رو به bindingNavigator درست اتصال بده؟ با ویزارد نمیخوام با کد نویسی میخوام این مشکل رو حل کنم تو همین برنامه ممنون از کمک و راهنماییتون

    http://cnmeysam.persiangig.com/C%20sharp/class_library_Connection.rar/download

ارسال دیدگاه

موضوعات:
وبلاگی برای تمام فصول:

به پاس حفظ حرمت انسانی و احترام به حقوق یکدیگر لطفا مطالب وبلاگ را تنها با نام و لینک دسترسی به "وبلاگی برای تمام فصول" ذکر نمایید.
با تشکر-حسام حاتمی

درددل:
  • در دلم زخمی است نه به عمق يک چاه يا بيکرانگی آه به انداز هی لانه ی پرنده ی کوچکی است که به آن سوی سادگی پريد شعر روی جلد: از سروده های زندان

    - #
  • بگذار عشق خاصیت تو باشد
    نه رابطه خاص تو با کسی......

    - #
  • آنکه نتواند به نیکی پاس هر مخلوق داد .......... از چه کرد این آفرینش را مگر مجبور بود ؟!

    - #
  • دین همچون شراب است. آن چنان را آن چنان تر می کند. حیوان ها را حیوان تر و انسان ها را انسان ت

    - #
  • بچه که بودم همیشه فکر می کردم چقدر بزرگن این آدما...و ترسیدم!

    اما بزرگتر که شدم٬ دیدم چقدر کوچیکن...و ترسیدم!

    - #
جستجو :
گفتگو با من:
وضع آپتایم سرور من:
تضمین تراکنشهای مالی توسط: