# پایگاه‌های داده > سایر پایگاه‌های داده > MySQL >  ارتباط MySQL با  C#‎.NET2008

## Sirwan Afifi

سلام
نحوه ی ارتباط MYSQL با C#‎.NET چطوریه؟
ثبت؟حذف؟ویرایش؟و.......

----------


## farkhondeh

منظورتون انيكه چطوري داه را از mysql بياريد توي C#‎؟

----------


## Sirwan Afifi

نحوه کار با MySql تو سی شارپ به چه شکلیه
باید از چه کلاسهایی استفاده کنم ؟و.....؟

----------


## mojtabadj

> نحوه کار با MySql تو سی شارپ به چه شکلیه
> باید از چه کلاسهایی استفاده کنم ؟و.....؟



باید mysql-connector-net رو بگیری و رو سیستمت نصب کنی بعد  dll رو اضافه کنی تو برنامت

و ازش استفاده کنی

----------


## Sirwan Afifi

میشه یه با یه مثال کامل توضیح بدید؟

----------


## mojtabadj

> میشه یه با یه مثال کامل توضیح بدید؟


این مثال مربوط به vb هستش ولی میتونی تو C#‎‎ استفاده کنی

http://www.dreamincode.net/forums/showtopic115753.htm

----------


## mina.net

سلام دوست عزیز 
ممکنه اون DLL رو اینجا بزاری . چون من نتونستم پیدا کنم.

----------


## mshakeri

لینک زیر:
https://barnamenevis.org/showthread.php?t=177886

----------


## mina.net

سلام دوستان
من تونستم به صورت لوکال با دیتابیس Mysql از طریق دات نت ارتباط برقرار کنم. ولی هنوز نتونستم با دیتابیس روی وب این کار رو بکنم. تو یک سایت که هاست رایگان می داد یک دیتابیس ساختم ولی نشد باهاش کانکت بشم. یکی از دوستان که این سایت رو دید گفته این سایت خودش مشکل داره. نمی دونمشاید درست بگه. من نیاز به یه دیتابیس دارم که روی وب باشه و نام سرور ، نام دیتابیس ، نام یوزر  و پسوردش رو داشته باشم. اگه یکی از دوستان که به MYSQL وارد هست برای من یک دیابیس روی وب بسازه ممنون می شم.

----------


## mshakeri

شما باید ابتدا یه user و password در MySQL در آن host  برای خودتون تعریف کنید.مگه میشه همینطوری به یک سرور تحت وب متصل شد.

----------


## mina.net

> شما باید ابتدا یه user و password در MySQL در آن host  برای خودتون تعریف کنید.مگه میشه همینطوری به یک سرور تحت وب متصل شد.


سلام دوست عزیز
من این کار رو کردم ولی نشد. user و pass ام رو به یکی از دوستان تو همین سایت دادم ایشون هم نتونستن کاری بکنن. می گه سایتش مشکل داره. نمی دونم تا چه اندازه درست هست. اگه لازم دونستید می تونم مشخصات کاربری ام رو تو سایت gigfa به هتون بدم تا آزمایش کنید.

----------


## mshakeri

ببینید شما وقتی که به host لاگین می شید و وارد c-panel می شید در MySQL گزینه ای مثل "user administration" وجود داره که اگر به شما اجازه ساخت user رو بده می تونید کاربری تعریف کنید و در connection string باید این  username و password را وارد کنید.

----------


## mina.net

> ببینید شما وقتی که به host لاگین می شید و وارد c-panel می شید در MySQL گزینه ای مثل "user administration" وجود داره که اگر به شما اجازه ساخت user رو بده می تونید کاربری تعریف کنید و در connection string باید این username و password را وارد کنید.


سلام دوست عزیز
اگه توجه کرده باشی در پست قبلی توضیح دادم که این کار رو کردم. ولی جواب نداد
مشخصات کانکشن رو من به این شکل وارد کردم ولی نشد. 
 
"host=host_name;UserName="user name";Password=pass;Database=DatabaseName"

اگه یک لطفی بکنی ممنون می شم. من تو پیام خصوصی مشخصات کاربری ام رو تو gigfa به شما می دم. ببینید می تونید تو  محیط php یا mysql  به اون متصل بشید . اگه شما بتونید این کار رو بکنید پس نشون می ده کد نویسی من تو دات نت اشکال داره وگرنه اشکال از وب سایت مورد نظر هست شاید هم اجازه نمی ده یک برنامه ویندوزی بهش متصل بشه.

----------


## mshakeri

ببینید من وارد هاست شما شدم در قسمت دیتابیس هاست شما اجازه ساخت user رو نمیده.
به این عکس یک نگاه بندازید:
2010-02-15 12-20-12 PM.gif

می بینید که این هاست اجازه ساخت user رو به شما میده.در ضمن در هاستی که شما دارید پورت مشخص نشده در حالیکه شما برای connect شدن نیاز به شماره پرت دارید.

----------


## mshakeri

نکته مهمی که وجود داره اینه که ما قبل از اینکه بتونیم به  MySQL server راه دور متصل بشیم باید توسط کد

grant all on MyDB.* to user@IP identified by 'Mypass'
در PHPMyadmin این فرمان را اجرا کنیم.اما وقتی من این فرمان را در هاست شما و حتی هاست خودم  اجرا می کنم با پیغام زیر مواجه میشم.

#1044 - Access denied for user 'user'@'%' to database 'MyDB'

حالا اگر کسی هست بدونه اشکال از کجاست؟

----------


## mina.net

سلام دوست عزیز
ممنون که همکاری می کنید. 
البته سایت پورت رو داده. پورتش هم 3306 هست. 



> در PHPMyadmin این فرمان را اجرا کنیم.اما وقتی من این فرمان را در هاست شما و حتی هاست خودم  اجرا می کنم با پیغام زیر مواجه میشم.


منظورت چیه در هاست خودم. آیا منظورت اینه که در همین سایت gigfa یک هاست رایگان گرفتی یا هاستی که از قبل داشتی؟ 

جمع بندی : با توجه به اینکه من می تونم به صورت لوکال به دیتابیس mysql از طریق vb.net کانکت بشم ولی برروی سرور نمی تونم. و همچنین شما هم نتونستید از طریق php به دیتابیسT, هاست من متصل بشید.
 آیا این به این معنی هست که هاستم مشکل داره و نه کد نویسی من؟

بازم ممنون از کمکی که انجام می دید.

----------


## mina.net

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

----------


## mshakeri

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


من از سایت http://hosting.zymic.com هاست رایگان گرفتم.در ضمن بنده هم از طریق .net متصل می شم هم از طریق ODBC .
من وقتی از طریق odbc کانکت میشم:
odbc.JPG
با پیغام زیر مواجه میشم:
alert.JPG
مشکل از کد نویسی شما نیست.چون من روی چند هاست دیگه هم امتحان کردم ولی همین پیام رو میداد.
اگه هاست اجازه اجرای فرمان GRANT رو بده حتما میشه به هاست متصل شد.آیا کسی هست بتونه این محدودیت رو بر طرف کنه؟

----------


## mina.net

> من از سایت http://hosting.zymic.com هاست رایگان گرفتم.در ضمن بنده هم از طریق .net متصل می شم هم از طریق ODBC .
> من وقتی از طریق odbc کانکت میشم:
> odbc.JPG
> با پیغام زیر مواجه میشم:
> alert.JPG
> مشکل از کد نویسی شما نیست.چون من روی چند هاست دیگه هم امتحان کردم ولی همین پیام رو میداد.
> اگه هاست اجازه اجرای فرمان GRANT رو بده حتما میشه به هاست متصل شد.آیا کسی هست بتونه این محدودیت رو بر طرف کنه؟


یعنی چون اینها رایگان هستند این محدودیت رو دارند یا کلا اینطوری هست. چون من می خوام قول انجام یک پروژه رو به یک شرکت بدم. یک برنامه اداری براشون نوشتم حالا می خوان یک سایت داشته باشن که قسمتی از اطلاعات این برنامه رو در اون قرار بدن البته این کار باید در برنامه و به صورت خیلی روانی انجام بشه یعنی نمی خواهیم دوباره کاری بشه.
حالا سوالم اینه آیا اگه یک هاست بخریم مشکل حله؟
چون یکی از دوستام با یک هاست پولی هم خواست این کار رو بکنه نشد. فکر می کردم مشخصات کانکشن رو به من اشتباه می ده.

----------


## mina.net

سلام دوستان لطفا کمک کنید. چرا اینقدر این تالار کم رونق هست.
می تونید این لینک رو هم ببینید. 
https://barnamenevis.org/showth...867#post914867

----------


## mshakeri

من به نتیجه هایی رسیدم.لینک:
http://www.cyberciti.biz/tips/how-do...se-server.html
اما نمیدونم که این دستورات را باید کجا اجرا کنم.

----------


## mina.net

> من به نتیجه هایی رسیدم.لینک:
> http://www.cyberciti.biz/tips/how-do...se-server.html
> اما نمیدونم که این دستورات را باید کجا اجرا کنم.


سلام 
من هنوز لینک شما رو نخوندم کامل.
من از کد زیر برای اتصال به mysql در vb.neet استفاده می کنم. این کد به صورت سرور هم جواب داده. یعنی از یک سیستم دیگه بهش متصل شدم.


Imports MySql.Data.MySqlClient

Public Class Form1
    Dim myConnString As String = "host=pc6;UserName=root;Password=;Database=myd  b"
    Dim myConnection As MySqlConnection = New MySqlConnection(myConnString)

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        myConnection.Open()
    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        Dim mySelectQuery As String = "SELECT fname FROM Mytb where id='4'"
        Dim myCommand As MySqlCommand = New MySqlCommand(mySelectQuery, myConnection)
        Dim obj As Object = myCommand.ExecuteScalar
        Dim str As String = CType(obj, String)
        MsgBox(str)

    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

        Dim name, id, fname As String
        name = "Ahangarpor"
        id = "4"
        fname = "barbod"
        Dim cmd As MySqlCommand = New MySqlCommand("insert into Mytb (id,name,fname)values('" & id & "','" & name & "','" & fname & "')", myConnection)
        cmd.ExecuteNonQuery()
        MsgBox("ثبت شد")
    End Sub
End Class


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

----------


## mshakeri

بله این کد به صورت سرور هم جواب میده بخاطر اینکه شما محدودیتی در جدول user در دیتابیس MySQL اعمال نکردید.من هم این کار و در شبکه انجام دادم و جواب هم داده.تنها علتی که وب سرورها اجازه ارتباط رو نمیدن وحود این محدودیت برای user شما در جدول user در دیتابیس MySQL روی وب سرور هست.

----------


## mina.net

سلام دوست عزیز
من سوالم اینه آیا هاست غیر رایگان(بابتش پول پرداخت می شه) هم همچین محدودیتی اعمال می کنه یا نه؟

----------


## mshakeri

> من سوالم اینه آیا هاست غیر رایگان(بابتش پول پرداخت می شه) هم همچین محدودیتی اعمال می کنه یا نه؟


در   هاست های غیر رایگان هم به طور پیش فرض این محدودیت وجود داره اما میشه با تماس با نمایندگی هاشون این محدودیت رو بر طرف کرد.

----------


## Jason.Bourne

> در   هاست های غیر رایگان هم به طور پیش فرض این محدودیت وجود داره اما میشه با تماس با نمایندگی هاشون این محدودیت رو بر طرف کرد.


باید دقیقا چه چیزی ازشون بخوایم و چه کاری باید انجام بدهند؟!

----------


## Jason.Bourne

> سلام دوست عزیز
> من سوالم اینه آیا هاست غیر رایگان(بابتش پول پرداخت می شه) هم همچین محدودیتی اعمال می کنه یا نه؟


من هم که هاست غیر رایگان دارم و بر روی سرور لینوکس هم هست و میخواهم با PHP بصورت   remote به این هاست وصل بشوم به من اجازه دسترسی را نمی دهد. به عبارتی به سرور MySQL مذکور وصل می شوم اما با پیغام زیر مواجه می شوم.

Warning:  mysql_connect() [function.mysql-connect]:  Access denied for user  'MyUser'@'*******' (using password:  YES)

----------


## mina.net

این جوابی هست که مسئولین هاست به من دادن امیدوارم مفید باشد.



> نمونه کانکشن استرینگ برای شما ارسال در ایمیل ارسال شده است که در پایین مجددا قرار داده می شود
> 
> Provider=SQLOLEDB;Data source=sql2005.bertina.ir;Initial catalog=databaseName;User Id=userName;Password=password;
> Server=sql2005.bertina.ir;Database=databaseName;Ui  d=userName;Password=password;
> 
> برای mysql هم از ادرس زیر استفاده نمایید
> mysql5.bertina.ir
> هاست برتینا اجازه دسترسی را دور Allow Remote Connections را هم برای mysql و هم sql server می دهد
> در رابطه با دستور grant در mysql هم هیچ هاست استانداردی چنین دسترستی برای استفاده از این دستور را نمی دهد زیرا در صورت فعال بودن این دستور کاربر بصورت مدیر کامل هاست می توانید خود را معرفی نموده و به دیتا بیس تمامی کاربران دیگر دسترسی پیدا نماید
> ...


من نام سرور رو اشتباه می دادم. ولی هنوز آزمایش نکردم. می ره برای فردا اینشااله

----------


## mina.net

سلام دوستان
مشکل حل شد. هم با sql و هم با mysql.  بهترین راه اینه که با ارائه دهنده هاست مشورت کنید. توضیح خاصی نداره باید ازشون نمونه کانکشن بخواهید.

----------

