PDA

View Full Version : سوال: اتصال SQL Server به ویژوال بیسیک 2010



e.kavoshgar
سه شنبه 05 آذر 1392, 07:51 صبح
با سلام. بنده با ویژوال بیسیک 2010 یه برنامه نوشتم. یه پایگاه داده هم با SQL Server 2008 ساختم که میخوام این رو رو بهم لینک کنم.
البته لینک کردن با موفقیت انجام گرفته و وقتی اطلاعات رو در فرمی که ساختم وارد و ثبت میکنم، اطلاعات توی دیتابیس ذخیره میشن.

اینم کدی که استفاده کردم برای ثبت:


If TextBox1.Text = "" Or TextBox2.Text = "" Or TextBox3.Text = "" Or TextBox4.Text = "" Or ComboBox1.Text = "" Then
MsgBox("پر کردن همه فیلدها الزامی است", MsgBoxStyle.Information, "توجه")
Else
SetData("insert into mydbbank ([fname],[lname],[stdid],[tel],[gen]) values (N'" & TextBox1.Text & "','" & TextBox2.Text & "','" & TextBox3.Text & "','" & TextBox4.Text & "','" & ComboBox1.Text & "')")
TextBox1.Text = ""
TextBox2.Text = ""
TextBox3.Text = ""
TextBox4.Text = ""
ComboBox1.Text = ""
TextBox1.Focus()
End If


مشکل اول اینجاست که نمیدونم اطلاعات چطوری باید توسط برنامه فراخوانی بشن. مثلا با وارد کردن شماره دانشجویی یک فرد و فشردن کلیدی، اطلاعات فردی دانشجو (اطلاعات تک تک Column های یک Row توی Textbox های مربوطه) به نمایش در بیاد

و مشکل دوم اینکه با وارد کردن شماره دانشجویی و فشردن کلید حذف، کلیه اطلاعات اون دانشجو ( Row ) حذف بشه. الان من یه قطعه کد نوشتم اما نمیدونم چرا به جای پاک کردن سطر مربوط به دانشجویی که شماره دانشجوییش وارد شده، تمام سطرها رو پاک میکنه. اینم قطعه کدش:


Dim mbr As MsgBoxResult
mbr = MsgBox("do you sure?", MsgBoxStyle.YesNo + MsgBoxStyle.Exclamation + MsgBoxStyle.Information, "Attention")
If mbr = MsgBoxResult.Yes Then
SetData("delete from mydbbank where [stdid]=stdid")
End If


ضمنا تصویری از ستونهای table دیتابیس رو ضمیمه کردم

113227

lastmory
سه شنبه 05 آذر 1392, 10:48 صبح
با سلام
مقدار شماره دانشجویی رو برابر با اون شماره ای که کاربر وارد کرده قرار بده

Dim mbr As MsgBoxResult
mbr = MsgBox("do you sure?", MsgBoxStyle.YesNo + MsgBoxStyle.Exclamation + MsgBoxStyle.Information, "Attention")
If mbr = MsgBoxResult.Yes Then
SetData("delete from mydbbank where [stdid]=" & Txt_StdNo.Text )
End If

e.kavoshgar
سه شنبه 05 آذر 1392, 13:08 عصر
ممنونم دوست عزیز، اما جواب نداد :(

behrooz69
چهارشنبه 06 آذر 1392, 02:04 صبح
Dim mbr As MsgBoxResult

mbr = MsgBox("do you sure?", MsgBoxStyle.YesNo + MsgBoxStyle.Exclamation + MsgBoxStyle.Information, "Attention")

If mbr = MsgBoxResult.Yes Then

SetData("delete * from mydbbank where [stdid]=" & Txt_StdNo.Text )

End If

behrooz69
چهارشنبه 06 آذر 1392, 02:30 صبح
دوست من واسه فراخوانی اطلاعات شخص همونطور که هر شخص یه فیلد مجزا به نام شماره دانشجویی داره با استفاده از شرط ازشا استفاده کن .
من کدشو واست می ذارم واضحه شما فقط جایگذاری کن مشکلی داشتی بگو واست توضیح بدم . من کلا با ویزاردی کار می کنم و کدهای SQl رو دستی می نویسم . اگه مشکلی بود بازم بگو
کد جستجو همون فراخوانی خودت :D

'/// search data ///

If Txt_StdNo.TextLength > 0 Then

cmd = New SqlCommand()
cmd.Connection = con
cmd.CommandText = "SELECT fname,lname,stdid,tel,gen FROM mydbbank WHERE(stdid=@stdid)"
cmd.Parameters.Add("@stdid", SqlDbType.NVarChar, max).Value = Txt_StdNo.Text

con.Open()
Dim sReader As SqlDataReader = cmd.ExecuteReader()

If sReader.Read() Then
txt1.Text = sReader.GetValue(0).ToString()
txt2.Text = sReader.GetValue(1).ToString()
txt3.Text = sReader.GetValue(2).ToString()
txt4.Text = sReader.GetValue(3).ToString()
txt5.Text = sReader.GetValue(4).ToString()


Else : MessageBox.Show("پیدا نشد")
End If
con.Close()
End If
واست تکست باکس ها و فیلد های جدولتم تو کد گذاشتم . فقط زحمت کپیش گردن شماست دوست من

اگه کارت راه افتاد تشکر یادت نره

behrooz69
چهارشنبه 06 آذر 1392, 02:33 صبح
اینم کد Delete از بانکت

If Txt_StdNo.TextLength > 0 Then
cmd = New SqlCommand()
cmd.Connection = con
cmd.CommandText = "DELETE FROM mydbbank WHERE Txt_StdNo='" & Txt_StdNo.Text & "'"

con.Open()
Dim count As Integer
count = cmd.ExecuteNonQuery()
con.Close()

If count > 0 Then
Dim s As String
s = MsgBox("آیا مایل به حذف اطلاعات مورد نظر هستید؟ ", MsgBoxStyle.YesNo + MsgBoxStyle.Question, Title:="هشدار")
If s = vbYes Then
MessageBox.Show("کالای مورد نظر حذف شد")
End If
Else : MessageBox.Show("کالای مورد نظر پیدا نشد")
End If
End If
txt1.Clear()
txt2.Clear()
txt3.Clear()
txt4.Clear()
txt5.Clear()



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

e.kavoshgar
پنج شنبه 07 آذر 1392, 11:22 صبح
دستت درد نکنه داداش
زحمت افتادی
من کدها رو وارد کردم
این ارور ها رو داد
قضیه چیه؟

e.kavoshgar
پنج شنبه 07 آذر 1392, 11:23 صبح
در ضمن برای اتصال یک ماژول ساختم که موقع ذخیره اطلاعات مشکلی نداره
برای سرچ و حذف اطلاعات باید کانکشن جدا و جدید بسازم؟
یعنی کد خاصی باید بنویسم؟
اگه اینطوریه چطور باید این کار رو بکنم؟

behrooz69
جمعه 08 آذر 1392, 19:58 عصر
دوست من نحوه ی تعریف کانکشنتو من نمی دونم ولی باید تو برنامت جایی که مشخص کردی و کردم وارد کنی.
ارور هاتم واسه اینه که sql client و sql data و cmd و sql data reader و con که کانکش برنامس رو تعریف نکردی .
این کارا رو انجام بده اوکی میشه
1) اینارو به برنامت Import کن . جاشم بالای برنامت بالای بالا ابتداست.
Imports System.Data
Imports System.Data.SqlClient

2) زیر کلاس فرمت یعنی : Public Class FromName بیا اینارو تعریف کن
Dim con As SqlConnection = New SqlConnection(My.Settings.conn)
Dim cmd As SqlCommand
Dim dr As SqlDataReader

3 ) حالا می رسیم به کانکشنت دوست من تو برنامه خودم من اومدم تو بخش Properties پروژم و تو Setting اون کانکشنمو تعریف کردم و اسم String اونو گذاشتم Conn و تو برنامم استفاده کردم . حالا شمارو نمیدونم چجوری از کانکشنت استفاده می کنی شما می تونی ب صورت دستی کانکشنتو اینجا تعریف کنی
Dim con As SqlConnection = New SqlConnection(My.Settings.conn
بجای My.Settings.conn بذار .

مشکلت رفع می شه اگه نشد اررور های بعدی رو بذار تا کمکت کنم نشد پروژتو بفرست اوکی کنم واست .

behrooz69
جمعه 08 آذر 1392, 20:01 عصر
دوست من نحوه ی تعریف کانکشنتو من نمی دونم ولی باید تو برنامت جایی که مشخص کردی و کردم وارد کنی.
ارور هاتم واسه اینه که sql client و sql data و cmd و sql data reader و con که کانکش برنامس رو تعریف نکردی .
این کارا رو انجام بده اوکی میشه
1) اینارو به برنامت Import کن . جاشم بالای برنامت بالای بالا ابتداست.
Imports System.Data
Imports System.Data.SqlClient

2) زیر کلاس فرمت یعنی : Public Class FromName بیا اینارو تعریف کن
Dim con As SqlConnection = New SqlConnection(My.Settings.conn)
Dim cmd As SqlCommand
Dim dr As SqlDataReader

3 ) حالا می رسیم به کانکشنت دوست من تو برنامه خودم من اومدم تو بخش Properties پروژم و تو Setting اون کانکشنمو تعریف کردم و اسم String اونو گذاشتم Conn و تو برنامم استفاده کردم . حالا شمارو نمیدونم چجوری از کانکشنت استفاده می کنی شما می تونی ب صورت دستی کانکشنتو اینجا تعریف کنی
Dim con As SqlConnection = New SqlConnection(My.Settings.conn
بجای My.Settings.conn بذار .

مشکلت رفع می شه اگه نشد اررور های بعدی رو بذار تا کمکت کنم نشد پروژتو بفرست اوکی کنم واست .


استفاده از دکمه تشکر سبب شادی ماست :قهقهه::قلب::خجالت:

e.kavoshgar
جمعه 08 آذر 1392, 23:35 عصر
مخم گریپاژ کرده. کار نمیکنه. این کدهایی که گفتی رو تو یه ماژول اضافه کردم! نه ابتدای کدهای فرم
این کل پروژه است و با ویژوال بیسیک 2010 نوشتم
یه نگاهی به ماژول بنداز ببین اشکال از اونجاست؟
مشکل اصلی تو فرم show info هستش

behrooz69
یک شنبه 10 آذر 1392, 00:31 صبح
اوکی دارم چکش میکنم ولی دوست من کاری که با 1 خط حل میشه و همه جا ازش استفاده می شه و به نفعته و خوبه رو ول می کنی میری ماژول مینویسی؟؟ درسته خوبه ولی هرچیزی یه 1 جایی داره و واسه کاری طراحی می شه . اوکی بذار ببینم . تو ماژولت میای Cmd رو چیز دیگه تعریف میکنی تو برنامت چیز دیگه . پسر خوب دیتابیستم که نفرستادی اونم بفرست واسم :D

behrooz69
یک شنبه 10 آذر 1392, 00:53 صبح
درستش کردم ولی دوست من برنامت از پایه مشکل داره . اگه تستیه که خوبه . اگه می خوای به کسی بدی روش کار کن . بعدا بهم بگو بهت بگم . من دیتا بیسشو نداشتم و نتونستم رو دیتا تست کنم ولی بدون اررور اجرا شد . اینم فایلت

یا علی . امیدوارم کمکت کرده باشم

e.kavoshgar
یک شنبه 10 آذر 1392, 11:56 صبح
ممنون داداش بابت زحمتی که کشیدی و بازم ممنون بابت کامنت های جالبی که تو سورس گذاشتی :D
در مورد چند تا کدی که گفتی اونها رو کامنت کرده بودم و بودنشون در عملکرد برنامه اختلالی ایجاد نمیکرد
درباره ماژول هم من یه آموزش یه جا دانلود کردم و تو اون نوشته بود که باید این کار رو بکنی!
متاسفانه من اصلا کار با پایگاه داده رو بلد نیستم، واسه همینه از هیچی سر در نمیارم
این فابلهای دیتا بیس لعنتی از درایو سی و اون پوشه های مربوطه بیرون نمیاد!
یه دیتا بیس جدید ساختم و توی پوشه دیباگ سیو کردم اما نمیشه پروژه رو RAR کنم و برات بفرستم
نمیدونم علت چیه. الان بازم روی دستورهای con.open ارور میده
اگه بودن ماژول اضافیه، میخوای حذفش کنیم؟

behrooz69
یک شنبه 10 آذر 1392, 14:21 عصر
به con.open گیر میده چون برنامتو جوری نوشتی که کانکشنتو باز نگه می داره و نمی بنده .
شما اول باید دیتابیستو De Attach کنی . بعد اجازه کپی داری .نیاز به ساخت دیتابیس مجدد نیست. از sql server استفاده میکنی یا sql express ؟

e.kavoshgar
دوشنبه 11 آذر 1392, 09:53 صبح
SQL Server 2008 R2

behrooz69
دوشنبه 11 آذر 1392, 14:00 عصر
خو sql server رو باز کن برو تو دیتابیس ها ، رو دیتابیست راست کلیک کن و از منوی Task اولین گزینه یعنی Deattach رو بزن . بعد یه پنجره باز می شه بالا کنار اسم دیتابیست 2تا چک باکس داره یکی بالاش نوشته Drop connection و یکی هم نوشته Update این دو تارو فعال کن بعد ok کن .
این 2تا اجازه کپی و جا به جایی و آپدیت تو زمان Deattach رو به کاربر میده .
حالا برو دیتابیستو کپی کن تو یه درایو دیگه و .Rar بکنش و بفرست واسم یه تست بزنم داداشی . اینم عکسش

e.kavoshgar
دوشنبه 11 آذر 1392, 15:42 عصر
این کار رو کردم. حالا چطوری اونو برگردونم؟ تو لیست دیتابیس های SQL Server دیگه نیست! :لبخند:

113420

behrooz69
دوشنبه 11 آذر 1392, 15:55 عصر
رو پوشه دیتابیس راست کلیک کن Attach رو میبینی ؟؟ اونو بزن و فایلتو انتخاب کن بذار اضافه شه

behrooz69
دوشنبه 11 آذر 1392, 16:06 عصر
داداش دیتابیسی که ساختی با چه ورژنیه ؟؟؟؟؟؟؟؟؟ sql server 2008 داری و با 1 ورژن دیگه می سازی ؟ :D
خفم کردی :گریه: :قهقهه:
رو دیتابیس راست کلیک کن New database رو بزن . بعد اسم دیتابیستو بنویس . 1 اسم دیگه . اسم خودتو بنویس BehroozDB اینجوری . بعد سمت چپ Option رو بزن و ببین Campability Level رو sql server 2008 (100) باشه . بعد اوکی بزن . حالا تیبل فیلد هاتو بساز . و لطف کن این دیتابیس رو Deattach کن و واسم بفرست . فقط دیتابیسو . تا اوکی کنم واست

behrooz69
دوشنبه 11 آذر 1392, 17:33 عصر
اینم برنامت . درستش کردم . فقط لطفا دیتابیس رو از پوشه Debug و MyDB پروژت به sql server وصل Attach کن . و برنامتو ران کن . اتچم نکنی ران می شه . شما همه چیزو دست کاری کردی . من درستش کردم 3 بار سرمو کوبیدم به کیبوررد :اشتباه::عصبانی++::قهقهه: . ببینش مشکل بود بگو . راستی تو صفحه جستجوت از کد 1020 استفاده کت واسه شماره دانشجویی . msgbox گذاشتم تو فرم لودش :قهقهه: .
چون حجمش 1.7 بود سایت نذاشت اینجا اپ کنم .

یه جا دیگه اپ کردم واست

لینکش :
http://uploadkon.ir/uploads/WindowsApplication1_3.rar

e.kavoshgar
دوشنبه 11 آذر 1392, 18:54 عصر
واقعا دستت درد نکنه :لبخند:
نمیدونی من رو از تو چه بحران عظیمی نجات دادی!!! :خجالت:
شک نداشته باش که جات تو اعماق بهشته :بوس:
یادم رفت بگم یه نگاهی هم به سورس بقیه فرمها بندازی. یه سری کامنت برات گذاشته بودم

behrooz69
سه شنبه 12 آذر 1392, 00:40 صبح
اونم می بینم چشم . سعی کن تو برنامت فارسی رو پاس بداری اگه قراره به کسی بدی همه انگلیسی بلد نیستن .

e.kavoshgar
جمعه 13 دی 1392, 00:32 صبح
داداش میتونی این رو تو محیط ویژوال 2005 برام بنویسی؟ کامپیوترهای لامصب دانشگاه ویژوال 2005 - 32بیتی دارن، برنامه رو بردم اونجا اجرا نشد ضایع شدم :D

behrooz69
جمعه 13 دی 1392, 03:28 صبح
مگه سورس برنامه رو بردی ؟؟؟ دانشگاهتون واسه دایناسوراس مگه داداشی ؟؟؟ 2005 ؟؟؟؟؟؟؟؟؟؟؟؟ دمشون گرم الان Dvd اش پیدا نمیشه :متعجب::قهقهه::گیج:

رو لپ تاپ بریز یا کیستو ببر .

راستی تو Exe ّرنامتو باز میکردی تست میکردی و توضیح میدادی تا طرف بفهمه خودت کار کردی :D

باید کانورت شه من 2005 کار نکردم :گریه:

behrooz69
جمعه 13 دی 1392, 03:35 صبح
مگه سورس برنامه رو بردی ؟؟؟ دانشگاهتون واسه دایناسوراس مگه داداشی ؟؟؟ 2005 ؟؟؟؟؟؟؟؟؟؟؟؟ دمشون گرم الان Dvd اش پیدا نمیشه :متعجب::قهقهه::گیج:

رو لپ تاپ بریز یا کیستو ببر .

راستی تو Exe ّرنامتو باز میکردی تست میکردی و توضیح میدادی تا طرف بفهمه خودت کار کردی :D

باید کانورت شه من 2005 کار نکردم :گریه:

e.kavoshgar
جمعه 13 دی 1392, 09:15 صبح
مشکل همینجاست دیگه! exe برنامه هم باز نشد
تو یه سیستم دیگه تست کردم، اجرا میشه اما موقع ثبت اطلاعات یا فراخوانی اطلاعات، حتی اون اطلاعاتی که شما وارد پایگاه داده کردی، این ارور رو میده

mehdi.sharafi
یک شنبه 26 آذر 1396, 06:04 صبح
سلام ببخشید این لینک که زحمت کشیدید گزاشتید فکر کنم تاریخش تمام شده .امکانش هست مجدد بزارید؟
http://uploadkon.ir/uploads/WindowsApplication1_3.rar

hamidrezax1
سه شنبه 28 آذر 1396, 22:01 عصر
سلام دوست عزیز فکر میکنم آقا بهروز در لینک زیر که در همین سایت وجود داره به صورت کامل و تصویری توضیح دادن.موفق باشید
آدرس لینک (http://barnamenevis.org/showthread.php?430122-%D9%86%D8%AD%D9%88%D9%87-%DA%A9%D8%A7%D8%B1-%D8%A8%D8%A7-Sql-Server-2008-%D9%88-%DA%A9%D8%AF-%D9%87%D8%A7%DB%8C-%D8%A2%D9%86-%D8%AF%D8%B1-VB-Net&highlight=%D8%A2%D9%85%D9%88%D8%B2%D8%B4+sql)