# برنامه نویسی با محصولات مایکروسافت > برنامه نویسی مبتنی بر Microsoft .Net Framework > WCF , Web Services , .Net Remoting > سوال: ساخت یک برنامه تحت ویندوز با بانک اطلاعاتی تحت وب

## Farzadak2010

سلام
برای اتصال MySql به #C کدوم راه بهتره ؟
لطفا بگید کدوم کد برای اجرا بهتره از نظر سرعت و دقت و کارایی
ممنون

----------


## Farzadak2010

*تصال به mysql در C#‎*  
 			  				برای اتصال به بانک اطلاعاتی my sql در .net احتیاج به موارد زیر داریم:
1- MySQL Server ترجیحا جدید ترین ورژن
2- MySQL Connector/NET

به غیر از موارد بالا بسته دیگه ای که توصیه می کنم نصب کنید MySQL  Workbench هست، که به شما اجازه کار بر روی سرور و بانک های اطلاعاتی mysql  بصورت ویژوال رو میده.

توجه: شما به جای نصب جداگانه بخش های بالا با استفاده از mysql-installer  که حجمی حدود 200MB داره میتونید کل قسمت های مورد نیاز برنامه های بر اساس  my sql رو به صورت یکجا نصب کنید.

*در مرحله اول* شما باید بانک اطلاعاتی و جدولتون رو بسازید.
برای ساخت بانک باید وارد سرور mysql بشید و این کار رو انجام بدید. در اینجا سه حالت پیش میاد:
*حالت اول* اینکه شما MySQL Workbench رو نصب کرده باشید، که در این  صورت میتونید بانک رو با چند تا کلیک بسازید (اگه خواستید بگید تا توضیح  بدم).
*حالت دوم* اینه که شما MySQL Workbench رو نصب نکردید و برای ساخت بانک میخواهید از طریق MYSQL Command Line وارد عمل بشید.
برای این کار به مسیر start>All Programs>MySQL>MySQL Server برید و برنامه MySQL Command Line Client رو اجرا کنید
یا به مسیر C:\Program Files\MySQL\MySQL Server 5.0\bin برید و برنامه mysql.exe رو اجرا کنید.
با اجرای برنامه از شما پسوردی که در زمان نصب mysql به عنوان root دادید  خواسته میشه که باید وارد کنید تا به محیط متنی سرور mysql وارد بشید.
با نمایش اعلان :
 کد:

mysql>

 شما وارد سرور شدید. در مقابل این اعلان شما میتونید دستورات sql و mysql  رو تایپ کنید. در این محیط اتمام دستورات با علامت ; مشخص میشه.

برای ساخت بانک اطلاعاتی از دستور زیر استفاده میشه
 کد:

create database Test1;

 که Test1 در اینجا نام بانک اطلاعاتی ماست.
برای ساخت جدول Users در بانک اطلاعاتی Test1 از دستور زیر استفاده میشه
 کد:

use Test1;
create table Users
(
ID int not null auto_increment primary key,
Name nchar(15) not null,
Family nchar(20) not null,
Age int not null
);

 نمایش پیام Query OK در جواب اجرای دستورات، نشان دهنده ی صحت اجرای دستور است.
خوب بود شما در حال حاضر یک بانک اطلاعاتی در mysql با یک جدول خالی درون  بانک دارید.  دستور exit را درون خط فرمان mysql تایپ کنید، تا پنجره خط  فرمان بسته شود.
*حالت سوم*  اینه که شما بخواهید از داخل برنامه بانک اطلاعاتی و جداولتون رو بسازید.
برای این کار در داخل کدهاتون دستورات ساخت بانک و جدول رو به زبان Sql به  شی MySqlCommand بدید.این شی مثل خط فرمان mysql عمل میکنه.

*در مرحله دوم* ما باید پروژه C#‎ رو بسازیم و با اون به mysql متصل بشیم.
برای اینکار یک پروژه جدید در Visual Studio میسازیم.از منوی Project گزینه  ی Add Reference رو می زنیم. در پنجره ای که باز میشه از سربرگ .Net گزینه  ی MySql.Data رو انتخاب و OK می کنیم.
حالا باید پروژتون رو بنویسید. این مرحله بسته به پروژه مورد نظر شما  متغییره. اما توضیحات کلی اون در مورد اتصال به بانک اطلاعاتی مشترکه. برای  درک بهتر میتونید از پروژه پیوست شده کمک بگیرید.
وارد بخش کد نویسی فرم میشیم و در قسمت بالای اون using MySql.Data.MySqlClient; را اضافه میکنیم.
حالا میتونیم در جایی از فرم که نیاز داریم، به بانک اطلاعاتی متصل بشیم.
مثلا اگر یک DataGridView روی فرم قرار بدید و بخواهید با یاز شدن فرم  اطلاعات جدولتون داخلش به نمایش در بیاد، باید داخل Form_Load کد های زیر  رو بنویسید:
 کد:

MySqlConnection con = new MySqlConnection("server=127.0.0.1; port=3306; database=Test1; uid=Us; password=Pass");
MySqlCommand com = new MySqlCommand("select * from Users", con);
MySqlDataAdapter da = new MySqlDataAdapter(com);
MySqlCommandBuilder combldr = new MySqlCommandBuilder(da);
DataSet ds = new DataSet();
da.Fill(ds, "Users");
dataGridView1.DataSource = ds;
dataGridView1.DataMember = "Users";

*شی con* ارتباط ما رو با mysql و بانک اطلاعاتی Test1 برقرار می کنه.این شی یک رشته اتصال دریافت میکنه که دارای این قسمت هاست:
_server:_
نام سرور رو مشخص میکنه.
_port:_
شماره پورتی که mysql به اون متصل شده. به صورت پیش فرض روی 3306 قرار  داره، اما اگه خودتون تغییرش داده باشید، یا چند نسخه از mysql روی  سیستمتون نصب باشه، باید شماره پورت مربوط به mysql مورد نظرتون رو وارد  کنید.
_database:_
نام بانک اطلاعاتی رو مشخص میکنه.
_uid:_
نام کاربری شما برای دسترسی به بانک اطلاعاتی.(میتوانید از کاربر root استفاده کنید. البته این کار توصیه نمیشود.)
_password_
رمز عبور مربوط به نام کاربری شما.
*شی com* توانایی اجرای دستورات sql رو به ما میده. با استفاده از خاصیت CommandText این شی میتونید دستورات sql رو روی بانک اعمال کنید.
*شی da* انتقال اطلاعات به ds رو به عهده داره.
*شی combldr* دستورات Insert ، Update و ... را برای da میسازه.
*شی ds* جداول رو برای ما نگهداری  میکنه. نسبت جدول ها و ds مثل کاغذ است با پوشه. همانطور که یک پوشه می  تواند حاوی چند کاغذ باشد، Dataset هم می تواند حاوی چند جدول باشد.

خط da.Fill(ds, "Users"); باعث انتقال اطلاعات جدول به ds می شود.
دو خط پایانی نیز وظیفه اتصال ds به  DataGridView را دارند.

----------


## Farzadak2010

جهت ارتباط با بانک اطلاعاتی My Sql در سی شارپ 2 روش عمومی وجود دارد.
1-استفاده از کانکشن ODBC که این کار به وسیله برنامه  mysql-connector-odbc-5.00.11-beta-gpl-win32(2).msi که از سایت MySql   دانلود می شود امکان پذیر می باشد.
2-استفاده از mysql.data.dll که این روش که مورد بحث این جلسه است .

روش کار :ابتدا برنامه mysql-connector-net-1.0.9  را از سایت mysql دانلود و بر روی کامپیوتر خود نصب کنید 
در مرحله دوم در قسمت Add Reference تابع کتابخانه ای mysql.data.dll را از مسیر
 C:\Program Files\MySQL\MySQL Connector Net 1.0.9\Binaries\.NET 1.1 در برنامه خود اضافه می کنیم 
در مرحله سوم namespace  مربوطه با نام     MySql.Data.MySqlClient را وارد صفحه می کنیم .
using MySql.Data.MySqlClient
در مرحله چهارم کدهای ارتباطی با mysql را به شرح زیر می آوریم اساس کار از این به بعد دقیقا شبیه ارتباط با microsoft sql می باشد.
 string myconstring = "Server=localhost; UserId=root; Password=pass; Database=repair;";

 MySqlConnection mycon = new MySqlConnection();

mycon.ConnectionString = myconstring;

MySqlDataAdapter myda = new MySqlDataAdapter("SELECT * FROM Customers", mycon);

DataSet myds = new DataSet();

mycon.Open();

myda.Fill(myds,"Customers");
mycon.Close();
dataGrid1.DataSource=myds
در مثال بالا یک دیتا گرید را از جدول Customer بانک اطلاعاتی Repair  موجود در دیتابیس MySql پر کرده ایم.

----------


## Farzadak2010

*و ویدئو آموزشی زیر که آخرین آموزشه
دانلود ویدئو با حجم 7 مگابایت
*

----------


## Farzadak2010

یعنی کسی نمیتونه برتری این کدها رو تایید کنه

----------


## _lotus_

سلام
 من قصد دارم یه برنامه با vb.net و دیتابیس myssql و این سوالات رو دارم
 1. چطور باید بکاپ بگیرم
 2. دیتابیس را در یک کامپیوتر دیگر چطور باید بارگذاری کنم و ... این کار مثل sql server هست یا مثل access
 3. در کامپیوتر مشتری باید mysql را نصب کنم
 من از Mysql Workbench 5.2 CE استتفاده میکنم
 ممنون

----------

