View Full Version : ارتباط با پایگاه داده ی mysql
121314
سه شنبه 12 مرداد 1389, 10:22 صبح
سلام بچه ها.من یه پروژه دارم که بااید با زبان C# به بانک mysql روی linux متصل بشم ولی چیز زیادی در موردش نمیدونم لطفا منو راهنمایی کنید فرمی که طراحی کردم میذارم ولی ارتباط با بانک رو نمیتونم انجام بدم توی همه ی کتاب ها ارتباط با sql server هست ولی مطلبی در مورد mysql پیدا نمیکنم.:عصبانی++::گریه:
mheidary86@gmail.com
sinashahab
دوشنبه 18 مرداد 1389, 12:33 عصر
من می دونم .
اگه هنوز نیاز داری بگو جوابتو بدم .
121314
چهارشنبه 20 مرداد 1389, 11:07 صبح
من می دونم .
اگه هنوز نیاز داری بگو جوابتو بدم .
سلام واقعا خوشحال شدم که میتونی به من کمک کنی .من شدیدا منتطرم چند روز دیگه بیشتر فرصت ندارم.
مرسی:لبخندساده::بوس:
Hossein Bazyan
چهارشنبه 20 مرداد 1389, 13:01 عصر
سلام بچه ها.من یه پروژه دارم که بااید با زبان C# به بانک mysql روی linux متصل بشم ولی چیز زیادی در موردش نمیدونم لطفا منو راهنمایی کنید فرمی که طراحی کردم میذارم ولی ارتباط با بانک رو نمیتونم انجام بدم توی همه ی کتاب ها ارتباط با sql server هست ولی مطلبی در مورد mysql پیدا نمیکنم.:عصبانی++::گریه:
mheidary86@gmail.com
سلام
باید کنکتور mysql رو دانلود کنید و فایل dll مربوطه را به برنامه اضافه نمائید سپس در فرمها import بشه در اینحالت مانند sql میتوانی از آن استفاده کنید.
من 80% برنامه هام رو از mysql استفاده میکنم
اینهم لینک دانلود کنکتور
http://dev.mysql.com/downloads/connector/net/
121314
چهارشنبه 20 مرداد 1389, 13:58 عصر
سلام
باید کنکتور mysql رو دانلود کنید و فایل dll مربوطه را به برنامه اضافه نمائید سپس در فرمها import بشه در اینحالت مانند sql میتوانی از آن استفاده کنید.
من 80% برنامه هام رو از mysql استفاده میکنم
اینهم لینک دانلود کنکتور
http://dev.mysql.com/downloads/connector/net/
سلام
ممنون از راهنماییتون .ولی امکان دانلودش نیست و فیلتر شده.بدون کانکتور نمیتونم ارتباط بدم راه دیگه ای به ذهنم نمیرسه .اگه دارید برام بذارید ممنون میشم.
Hossein Bazyan
چهارشنبه 20 مرداد 1389, 14:12 عصر
سلام
ممنون از راهنماییتون .ولی امکان دانلودش نیست و فیلتر شده.بدون کانکتور نمیتونم ارتباط بدم راه دیگه ای به ذهنم نمیرسه .اگه دارید برام بذارید ممنون میشم.
سلام
برای من فیلتر نیست ایمیلت رو بده یا با پیغام خصوصی بفرست تا برات ایمیل کنم
121314
چهارشنبه 20 مرداد 1389, 17:50 عصر
سلام
برای من فیلتر نیست ایمیلت رو بده یا با پیغام خصوصی بفرست تا برات ایمیل کنم
منتظرم
golmarmail@yahoo.com
121314
جمعه 22 مرداد 1389, 19:29 عصر
سلام بچه ها.من یه پروژه دارم که بااید با زبان C# به بانک mysql روی linux متصل بشم ولی چیز زیادی در موردش نمیدونم لطفا منو راهنمایی کنید فرمی که طراحی کردم میذارم ولی ارتباط با بانک رو نمیتونم انجام بدم توی همه ی کتاب ها ارتباط با sql server هست ولی مطلبی در مورد mysql پیدا نمیکنم.:عصبانی++::گریه:
mheidary86@gmail.com
دیگه دارم نا امید میشم.
Hossein Bazyan
جمعه 22 مرداد 1389, 20:52 عصر
دیگه دارم نا امید میشم.
سلام
نمیخواد نا امید بشی تلاش کن
من هنوز هم که هنوزه منظورت رو نفهمیدم . یه بار میگی ویندوز یه بار لینوکس
به هر حال من یک تکه کد نوشتم شاید منظورت همین باشد
اول یه جدول بنام verkoop بساز
CREATE TABLE `verkoop` (
`id` INT( 4 ) NOT NULL ,
`Name` VARCHAR( 20 ) NULL ,
`Family` VARCHAR( 20 ) NULL ,
PRIMARY KEY ( `id` )
) ENGINE = MYISAM ;
با کلید New میتوان آخرین رکورد را به دست آورد و با Insert میتوان رکورد را به بانک افزود و Refresh هم معلومه گرید رو رفرش میکنه
در ضمن من این کد رو از روی برنامه های خودم برداشتم به همین دلیل از یک سری توابع خودم استفاده کردم که اگر متوجه نشدی بگو تا توضیح دهم
من نمیتوانم فایلی رو Attach کنم به هیمن دلیل برات ایمیل میکنم
121314
جمعه 22 مرداد 1389, 21:30 عصر
سلام
نمیخواد نا امید بشی تلاش کن
من هنوز هم که هنوزه منظورت رو نفهمیدم . یه بار میگی ویندوز یه بار لینوکس
به هر حال من یک تکه کد نوشتم شاید منظورت همین باشد
اول یه جدول بنام verkoop بساز
CREATE TABLE `verkoop` (
`id` INT( 4 ) NOT NULL ,
`Name` VARCHAR( 20 ) NULL ,
`Family` VARCHAR( 20 ) NULL ,
PRIMARY KEY ( `id` )
) ENGINE = MYISAM ;
با کلید New میتوان آخرین رکورد را به دست آورد و با Insert میتوان رکورد را به بانک افزود و Refresh هم معلومه گرید رو رفرش میکنه
در ضمن من این کد رو از روی برنامه های خودم برداشتم به همین دلیل از یک سری توابع خودم استفاده کردم که اگر متوجه نشدی بگو تا توضیح دهم
من نمیتوانم فایلی رو Attach کنم به هیمن دلیل برات ایمیل میکنم
سلام ممنون از لطف شما.
من یه بار دیگه توضیح میدم.database من (mysql ) روی لینوکس و باید از طریق زبان سی شارپ بهش متصل بشم.نمیدونم توضیحاتم کامل بود یا نه؟
Hossein Bazyan
جمعه 22 مرداد 1389, 21:43 عصر
سلام ممنون از لطف شما.
من یه بار دیگه توضیح میدم.database من (mysql ) روی لینوکس و باید از طریق زبان سی شارپ بهش متصل بشم.نمیدونم توضیحاتم کامل بود یا نه؟
سلام
هیچ فرقی نداره . برنامه ای را که من برات فرستادم کار میکنه یا نه ؟
در ضمن تبدیل به سی شارپ که مشکل نیست خودت میتونی تبدیل کنی.
121314
یک شنبه 24 مرداد 1389, 09:50 صبح
سلام ممنون از لطف شما.
من یه بار دیگه توضیح میدم.database من (mysql ) روی لینوکس و باید از طریق زبان سی شارپ بهش متصل بشم.نمیدونم توضیحاتم کامل بود یا نه؟
بین خانوما وآقایون کسی نبود جواب مارو بده؟:متفکر:
mortezagt
چهارشنبه 10 شهریور 1389, 01:15 صبح
سلام
برای من فیلتر نیست ایمیلت رو بده یا با پیغام خصوصی بفرست تا برات ایمیل کنم
دی ال ال های مای اسکیوال بخاطر تحریم ایران قابل دانلود نیست دوتا راه برای دانلودشون
داری 1 - با فیلترشکن دانلودشون کنی. 2 - فایل ضمیمه رو دانلود کنی (MySql Dll):بامزه:
zoofa
چهارشنبه 17 شهریور 1389, 04:24 صبح
سلام دوست عزیز
شما وقتی یه برنامه بنویسی که بتونی به 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
lahij.ir
شنبه 24 مهر 1389, 15:36 عصر
سلام دوست عزیز
شما وقتی یه برنامه بنویسی که بتونی به 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 بریزم
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.