نقل قول نوشته شده توسط zoofa مشاهده تاپیک
سلام دوست عزیز
شما وقتی یه برنامه بنویسی که بتونی به mysql کانکت بشی هیچ تفاوتی نمی کنه که سرورتون روی لینوکس باشه یا روی ویندوز.
مهم آی پی سرور هست که باید توی کانکشن استرینگ تنظیم کنید.

فقط نکته ای که می مونه اینه که بصورت پیش فرض نمی توان به mysql که بر روی لینوکس نصب شده از طریق شبکه متصل شد و فقط می توان به صورت local متصل شد.
برای دادن دسترسی از طریق شبکه به سرور mysql در لینوکس کافیه به فایل به آدرس /etc/mysql/my.cnf رفته و فایل را با یه ادیتور باز کنید و خط
...
...

bind-address = 127.0.0.1

...
...
رو پیدا کنید و اولش یه # بزنید تا تبدیل به کامنت شه و فایل رو ذخیره کنید و سرور mysql رو ریست کنید. با انجام این کار از طریق شبکه می توان به mysql موجود بر روی لینوکس کانکت شد.

حالا میمونه طریقه متصل شدن از سی شارپ به mysql که با اون dll که دوستمون جناب mortezgat دادند میشه کانکت شد.
dll رو دانلود کنید و از منوی project -> add refrence به پروژتون اضافه کنید.
حالا میمونه کد نویسی که من قبلا یک کلاس واسه این کار نوشتم که به بانک مای اسکیو ال کانکت میشه. البته این کلاس به زبانه ویبی هست که خودتون می تونید به سی شارپ تبدیلش کنید. اگه هم مشکلی تو تبدیل هست بگید که خودم تبدیلش کنم.
بالای کلاس دو خط زیر را اضافه کنید.

Imports System.Data
Imports MySql.Data.MySqlClient
فقط کافیه این کلاس رو تو کلاسی که می خاید از دستورات mysql استفاده کنید به ارث ببرید.

و از توابع source و execute استفاده کنید.
تابع source واسه کوئری select استفاده میشه و نیجه رو میریزه توی ds توی جدول t1
تابع execute هم واسه کوئری های insert , update و delete استفاده میشه

نکته ی دیگه ای هم که هست اینه که وقتی از پارامترها استفاده می کنید توی sqlserver قبل از هر پارامتر علامت @ قرار می دیم اما در mysql علامت ؟ باید قرار بدیم.
اگه سوالی داشتید در خدمتم.
موفق باشید.



Public Class mysql_db_cls




Private cnn As New MySqlConnection
Private cmd As New MySqlCommand
Private sda As New MySqlDataAdapter
Protected ds As New DataSet
Protected psign As String = "?"
Private cnn_string As String


Public Sub New()


cnn_string = "server = ip_server; userid = root; password = pass;database = database;charset=utf8"

cnn.ConnectionString = cnn_string
cmd.Connection = cnn
End Sub



Protected Overloads Sub source(ByVal query As String, ByVal param() As MySqlParameter)


Try
cmd.CommandText = query
cmd.Parameters.Clear()
For I As Integer = 0 To param.Length - 2
cmd.Parameters.AddWithValue(param(I).ParameterName , param(I).Value)
Next

sda.SelectCommand = cmd
ds.Clear()
If cnn.State = ConnectionState.Open Then
cnn.Close()
End If

cnn.Open()
Catch ex As Exception
MessageBox.Show("خطا در اتصال به بانک ")
Application.Exit()
End Try
Try
sda.Fill(ds, "t1")
cnn.Close()
Catch ex As Exception

MessageBox.Show("خطا در اجرای کوئری")

Application.Exit()
Finally
If (cnn.State = ConnectionState.Open) Then
cnn.Close()
End If
End Try




End Sub

Protected Overloads Sub source(ByVal query As String)


Try
cmd.CommandText = query

sda.SelectCommand = cmd
ds.Clear()
If cnn.State = ConnectionState.Open Then
cnn.Close()
End If

cnn.Open()
Catch ex As Exception
MessageBox.Show("خطا در اتصال به بانک")
Application.Exit()
End Try
Try
sda.Fill(ds, "t1")
cnn.Close()

Catch ex As Exception

MessageBox.Show("خطا در اجرای کوئری")
Application.Exit()
Finally
If (cnn.State = ConnectionState.Open) Then
cnn.Close()
End If
End Try



End Sub

Protected Overloads Function execute(ByVal query As String) As Boolean

Try
cmd.CommandText = query
If cnn.State = ConnectionState.Open Then
cnn.Close()
End If

cnn.Open()
Catch ex As Exception
MessageBox.Show("خطا در اتصال به بانک")
Application.Exit()
End Try

Try
cmd.ExecuteNonQuery()
cnn.Close()
Return True
Catch ex As Exception

MessageBox.Show("خطا در اجرای کوئری")
Application.Exit()
Dim qq = ex.Message
Return False
End Try

End Function

Protected Overloads Function execute(ByVal query As String, ByVal param() As MySqlParameter) As Boolean

Try
cmd.CommandText = query
cmd.Parameters.Clear()
For I As Integer = 0 To param.Length - 2
cmd.Parameters.AddWithValue(param(I).ParameterName , param(I).Value)
Next
If cnn.State = ConnectionState.Open Then
cnn.Close()
End If

cnn.Open()
Catch ex As Exception
MessageBox.Show("خطا در اتصال به بانک")
Application.Exit()
End Try
Try
cmd.ExecuteNonQuery()
cnn.Close()
Return True
Catch ex As Exception

MessageBox.Show("خطا در اجرای کوئری")
Application.Exit()
Dim qq = ex.Message
Return False
End Try

End Function


End Class

ممنون بابت توضیحات ، من قبلا تو vb6 خیلی راحت به سرور وصل میشدم اما vb.net یکم فرق داره انگار من کانکت میشم و میتونم اطلاعات و داخل datagride بریزم اما سوالم اینه ، اگه بخوام فیلد های یه جدول و تک تک بسته به شماره ی فیلد id که فیلد کلید هست بخونم و داخل تکس باکس بزیزم باید چی کار کنم ؟ مثلا فیلد id شماره ی 3 تمام اطلاعاتشو به ترتیب داخل text box بریزم