با سلام خدمت مدیرای انجمن . خیلی از بچه ها ازم خواستن که اگه می تونم و بلدم بیام یکمی اموزش sql server و کد هاش تو vb رو بگم . می خواستم با اجازتون این آموزش ها رو شروع کنم . منتظر تاییدتونم که شروع کنم .
با سلام خدمت مدیرای انجمن . خیلی از بچه ها ازم خواستن که اگه می تونم و بلدم بیام یکمی اموزش sql server و کد هاش تو vb رو بگم . می خواستم با اجازتون این آموزش ها رو شروع کنم . منتظر تاییدتونم که شروع کنم .
بهروز جان اول ازهمه من مبتدی ترین سوال رو میپرسم:چطور با استفاده از ویژوال بیسیک2008 یه پایگاه داده SQL ایجاد کنم؟؟و
تفاوت SQL Server با Microsoft Access2010 چیه؟؟
هرکس چیزی میدونه تو تایپیک بذاره!!
آخرین ویرایش به وسیله sagggad : دوشنبه 11 آذر 1392 در 20:51 عصر
جواب سوال اولت دوست من شما با VB.net 2008 یا 2010 می تونی بانک sql express بسازی . که من خودم به شخصه پیشنهاد نمی کنم .
روش ساختشم پروژت رو با عکس می زارم واست .
1 sql express.jpg
2 sql express.jpg
3 sql express.jpg
بهتره که دیتابیستو با خود SQL SERVER بسازی چون مدیریتش خیلی قوی تر و کنترلت رو دیتابیس خیلی اسون تره و اگه بخوای پروژه سنگین بنویسی SQL SERVER خیلی کنترل هارو می تونی رو دیتابیست انجام بدی که بعدا بهت می گم .
جواب سوال دومت .
1 ) تو sql server قابلیت ذخیره اسناد و صدا و تصاویر و ویدئو وجود داره.
2) sql server قابلیت متصل شدن با چند سرور و شبکه شدن رو داره.
3) sql server یه دنیاییه واسه خودش که تو pdf ای که اماده کردم ببینی متوجه می شی درباره دیتابیس هاست دوستان.
و اما اکسس همینو بگم فقط که از حجم 2 گیگ داده پشتیبانی می کنه . فکرشو بکن تو 1 شرکتی نصب کردی که روزی 100 تا داده سیو می کنه بعد چند وقتی فک کن چی می شه . و یه چیز جالب خود اکسس توش sql query داره می شه از sql توش استفاده کرد .
تو پروژه های سنگین و ضعیف در حال حاضر بالای 90 % از بانک SQL SERVER استفاده می کنن چرا ؟ چون مقدار اطالاعاتی که می گیره خیلی بیشتره و فکر کنم چند هزار تا از ACCESS بیشتره و از اونجایی که من از بانک و برنامه نویسی ACESS فقط تو راهنمایی استفاده کردم با VB6 از همون موقع خوشم نمیومد ازش .
باقی اطلاعات تو pdf هست .
http://uploadkon.ir/uploads/BehroozDb.pdf
بهروز جان دستت درد نکنه واقعا بدرد بخوربود.می خواستم بگم برای بالا رفتن فهم موضوع ،
آموزش ساخت مثلا دفترچه تلفن باSQL Server رو آموزش پایه ای بده .اینطوری کسایی مثل من که از SQL Server هیچی نمیدونیم هم یاد میگیریم
موفق باشید
آقا بهروز اگه میشه لطف کن بگو چطوری باید Tableساخت و کجا ذخیره میشه؟؟ آیا میشه ان رو در گرید ویو نمایش بدم؟؟و انواع داده های اون جیه؟؟
آخرین ویرایش به وسیله sagggad : سه شنبه 12 آذر 1392 در 09:49 صبح
سلام . روی Table فلش گذاشتم . روش راست کلیک کن و Create کن . ساخت و مقدار های هر فیلد با Sql server یکیه در واقع داری از Sql Express استفاده می کنی همینطور که تو Pdf ام نوشتم فقط موتور Sql engine که در صورت نبودن Sql Server از اون استفاده می کنیم و با ساختنش هم به رسورس پروژت اضافه می شه و هم تو Drive c تو پوشه Sql Express توی Data هستش و می شه ازش استفاده کرد . و ورژن که vb.net 2010 نصب می کنه Sql Express 2008 هستش .
امیدوارم مفهوممو رسونده باشم .
خوب دوستان به صورت آزمایشی ما میایم رو برنامه دفترچه تلفن ساده به صورت تستی کار می کنیم که هم همه آشنا بشن هم به درد همه بخوره هم کسی هم اگه خواست می تونه نظر بده تا همه استفاده کنن .
به نام هستی
مرحله اول ساخت دیتابیس با Sql Server 2008
1.jpg
در این مرحله طبق روی Database راست کلیک کنید . گزینه New Database رو بزنین .
2.jpg
نام دیتابیس رو تو کادر بالا بنویسین من از TellDB استفاده کردم . سپس به Option برید و ببینید که کادر مورد نظر تو عمس رو Sql server 2008 (100) باشه . به باقی چیزا دست نزنین و Default باشه و Ok کنین . دیتابیس ما ساخته شد .
تو مرحله بعد می رسیم به ساخت Table مورد نظر برای ثبت اطلاعات .
طبق عکس روی Table راست کلیک کنید و New Table رو بزننین .
4.jpg
فیلد های مورد نظر رو وارد کنید و نوع داده ای اونا رو هم طبق عکس وارد کنید . رو به روی Id تیک Allow Null غیر فعال باشد زیرا اجازه خالی وارد کردن به اون داده نشه و سپس واسه اینکه به صورت صعودی با هر رکورد جدید یک Id بگیره میایم تو کادر پایین روی Identity Specification دابل کلیک کنید تا فعال بشه و Yes بشه و گزینه Is Identity رو هم Yes کنید و زیرش هم مشخص میکنید که از چند شروع بشه به صورت پیش فرض از 1 شروع میشه تا ....
تو این مرحله Id رو به عنوان کلید اصلی در نظر میگیریم که بعدا اگه Table دیکگه اضافه کردیم بتونیم با این کلید به Table دیگه وصل شیم .
8.jpg
تو این مرحله برای ذخیره دیتابیسمون روی دکمه Save کلیک کرده و طبق عکس توی کادر اسم Table خودمون رو مینویسیم و سپس Ok میکنیم .
تبریک میگم شما هم Database رو ساختید هم Table مورد نظر رو .
امیدوارم تا اینجا مفهمومی بوده باشه و راضی باشید در مرحله بعد اولین صفحه برنامه دفترچه تلفن رو شروع میکنیم . مشکلی بود بپرسین .
بهروزجان منSQL SErver2008 رو نصب کردم ولی هرجامیرم SQL Server Managment رو نمیبینم.چی کارکنم؟؟؟
اگه میشه لطف کن یه توضیحی راجع به Data Type ها هم بده.ممنونم
آخرین ویرایش به وسیله sagggad : چهارشنبه 13 آذر 1392 در 07:56 صبح
اگه ویندوزت 7 ه تو Start >> All Program >> Sql Server 2008 >> Sql Server Management Studio
یا از این ادرس :
C:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\VSShell\Common7\IDE
فایل Ssms.exe رو باز کن . اگه نبودن بدون بد نصب کردی داداش دوباره کامل نصب کن . ورژن Enterprise نسخه Sql server 2008 r2 رو نصب کن
بهروز جان من وقتیSQL Server رو گرفتم یه فایل بود که باید اکستراکت میشد.یعنی زیپ بود.بعد که اکستراکتش کردم خود به خود رفت به C:\TEMP وانوجا فایل باز شدش بود.فولدر های زیادی ایجاد شده بود مثلا:X86-X64-StreamInsight-resourcesو...بعد همونجا یه فایل ستاپ بود من رو اون کلیک کردم ومراحل نصب رو انجام دادم.اما Management وجود نداره!!
واقعا از راهنمایی هات ممنونم
خوب دوستان . شرمنده چون من سرکار میرم و زیاد وقت ندارم شبا پست میذارم .
طبق آموزش قبلی یه Table دیگه درست کنین به نام TblLogin و فیلد های اونو اینارو بذارین :
1 ) ID >> Data type : Int
2 ) Username >> Data Type : Nvarchar(50)
3 ) Password >>Data Type : Nvarchar (50)
loggin.jpg
--------------------------------------------------------------------------------------------------------------
حالا میریم سر وقت برناممون . یه پروژه ایجاد کنید با هر اسمی من نوشتم TellBook .
تو این آموزش می پردازیم به صفحه لاگین یا همون امنیتی برنامه . برنامه رو ضمیمه می کنم ولی خودتون درست کنید که یاد بگیرید .
تو فرمم 2 تا تکس باکس دارم و 2تا هم دکمه 1 ورود و 1 خروج . اینم عکسش . دیگه طراحیش با خودتون
FrmLoggin.jpg
اما صبر کنین . قبل از هرچیزی بیام دیتابیسمون رو اول تعریف کنیم به صورت رشته ای مشخص که دیگه هربار و هر جا تعریفش نکنیم . چجوری ؟؟؟ منو همراهی کنید .
از منوی Project آخرین گزینه یعنی Properties پروژتونو انتخاب کنید .
Connection.jpg
حالا به قسمت Setting برید و تو قسمت نام کلمه Conn رو بنویسین نوعش یعنی Type رو بذارین رو Connection String و Scope رو بذارین رو Application و تو قسمت Value هم آدرس رشته دیتابیسمونو میدیم .
شما اینجا 2 روش دارین
اول اینکه چون دیتابیس رو سیستم شما و با Sql server خودتون ساخته شده و تو مسیر Local هست و تو سرور خودتونه می تونین از Local استفاده کنید .
Data Source=(local);Initial Catalog=TellDB;Integrated Security=True
اینجوری . حالا مهم نیست برنامتون تو چه فولدری باشه حتی رو فلش ، رم ، سی دی هرچی باشه اجرا می شه چون دیتابیس رو سیستم شما و Local شماست . تا اینجاش که اوکی بود .
حالا روش دوم می تونین تو پوشه Directory پروژتون توی Debug بیاین ازش استفاده کنید یا تو همین Debug بیاین یه فولدر درست کنین مثلا به نام MyDb که دیتابیستونو بریزین توش و برنامتون رو به مشتری تحویل بدین و مشتری برنامشو اجرا کنه تو این روشم مهم نیست برنامه کجا باشه هرجا باشه دیتابیس از تو پوشه Directory یا تو فولدر مشخص شده ی شما اجرا می شه . کدشم اینه :
Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|\MyDB\TellDB.mdf;Integrated
Security=True;User Instance=True
فقط فرش اینه که شما تو این روش باید دیتابیستونو تو این فولدری که درست کردین MyDb کپی کنین و به مشتری بدید .
ما از روش اول استفاده می کنیم که مشکل ساز نشه . اینم عکسش
Connection 2.jpg
--------------------------------------------------------------------------------------------------------------
حالا میریم سراغ پروژه .
روی دکمه خروج دابل کلیک کنید و کلمه End رو بنویسین واسه خروج از برنامه و اگه هم می خواین قشنگ بشه اینکارو کنین :
Dim s As String
s = MsgBox("آیا مایل به خروج از برنامه هستید؟ ", MsgBoxStyle.YesNo + MsgBoxStyle.Question, Title:="هشدار")
If s = vbYes Then
End
End If
اینجا میاد از کاربر می پرسه که می خواد خارج شه یا نه اگه Yes رو بزنه می اد بیرون اگه No رو بزنه برمیگرده به برنامه
--------------------------------------------------------------------------------------------------------------
روی دکمه ورود دابل کلیک کنید و کد زیر رو بنویسین واسه ورود به برنامه
خوب یه سری توضیحات اینجا می دم که همه جا ازش استفاده می کنیم :
1 ) تعریف Data های Sql
2 ) تعریف کانکشن ها و رشته های ما
3 ) تعریف دستورات sql
1 ) داده های Sql داده هایی هستن که واسه استفاده از sql باید فراخونی بشن و جاش قبل همه کد هاست .از جمله این 2 تا داده
Imports System.Data
Imports System.Data.SqlClient
2 ) کانکشن ها و رشته های ما تو این صفحه Loggin
Dim con As SqlConnection = New SqlConnection(My.Settings.conn)
Dim cmd As SqlCommand
Dim dr As SqlDataReader
Dim strcon, strsql As String
دیگه به جای تعری 2 خط رشته ی دیتابیس از این نیمچه خط استفاده میکنیم
My.Settings.conn
-----------------------------
Cmd ما از نوع SqlCommand هم دستورات Sql مارو شامل می شه .
dr ما از نوع SqlDataReaderهم واسه خوندن دیتا هامون استفاده می شه .
تعریف اینا جاش کجاست ؟ زیر کلاس فرمم ما مثل :
Public Class FrmLogin
------------------------------------------------------------------------------------------------
اوف خسته شدم بچه ها یکی دوشمو بماله . تشکرررررررررررررررررررررر ررررررر
-----------------------------------------------------------------------------------------------
خسته نباشین .
حالا میایم دستور فراخوانی رو میدیم همون Select Query خودمون . من کلا کدی کار می کنم ویزارد کار نیستم
روی کمه ورود دابل کلیک کنید :
If TxtUserName.Text = String.Empty Then
MsgBox("نام کاربری را وارد كنيد", vbExclamation + vbOKOnly, "پيام")
TxtUserName.Focus()
Exit Sub
ElseIf TxPass.Text = String.Empty Then
MsgBox("پسوورد را وارد كنيد", vbExclamation + vbOKOnly, "پيام")
TxPass.Focus()
Exit Sub
End If
این کدا چی میگن ؟؟؟ توضیح بدم ؟؟؟ اگه هر کدومو از تکس باکس ها خالی بود اررور میده که اونو پر کنین و Focus میکنه روش . اوکی .
حالا ادامه
'// select query //
cmd = New SqlCommand
cmd.Connection = con
con.Open()
strsql = "select Username,Password from TblLogin where (Username= N'" & TxtUserName.Text & "') and (Password =N'" & TxPass.Text & "')"
cmd = New SqlCommand(strsql, con)
dr = cmd.ExecuteReader()
If dr.Read Then
FrmMain.Show()
Me.Hide()
Else
MsgBox("اطلاعات را صحیح وارد کنید", MsgBoxStyle.OkOnly, "هشدار")
End If
con.Close()
دیگه همه چیزش واضحه نیاز به توضیح نیست . میاد یوزرنیم و پسوورد رو از تکس باکس هاشون می خونه و اگه دیتارو خوند و درست خروجی گرفت فرم FrmMain رو نمایش می ده و این فرم رو مخفی می کنه و در غیر اینصورت اررور می ده که اطلاعاتو درست وارد کنین .
-----------------------------------------------------------------------------------------------------------
امیدوارم تا اینجاشو خوب فهمیده باشید . 2 ساعته رو این پستم به خدا حقم نی تشکر کم شه
-----------------------------------------------------------------------------------------------------------
پروژه رو واستون ضمیمه می کنم فقط این صفحه رو . فردا شب انشالله زنده بودم صفحه اصلی برنامه و ثبت اطلاعات رو آموزش می دم .
راستی یادتون نره من تو پروژه از فونت نازنین استفاده کردم اگه دارین که چه خوب اگه ندارین تو سورس هست بریزین تو پوشه فونت خودتون . اوکی بچه ها
بفرمائید
هم بدون دیتابیس رو می ذارم هم با دیتابیس که اگه نتونست بسازه فقط زحمت Attach دیتابیس رو بکشه تو Sql Server
این بدون دیتابیس :
TellBook Bedon Db.rar
اینم با دیتابیس :
http://uploadkon.ir/uploads/TellBook%20ba%2
0Db.rar
تا فردا شب ، شب تون خوش
بهروز جان سورست نزدیک 100 جا زیرش خط آبی می کشید.اما اونی که از رو آموزشت درست کردم مشکلی نداشت.فقط وقتی که نام کاربری وپسورد رو وارد می کنی باز هم می گه اطلاعات را صحیح وارد کنید!!مشکل چیه؟؟
آخرین ویرایش به وسیله sagggad : پنج شنبه 14 آذر 1392 در 09:57 صبح
سلام دیتابیست رو چک کن . چون دوست من تو Table مربوط به Login خودت یوزرو پسووردی وارد نکردی . برو تو Sql server و دیتابیس تلفنت و تیبل TblLoggin و مثلا یوزر نیم رو 1 و پسوورد رو 1 وارد کن و تو برنامت همونو وارد کن دیگه حالا می خوای یکی باشه می خوای 10 تا یوزر نیم باشه .
خو داداشی شما واست تستین دیگه اررور های سورس رو بگو من رفعش کنم مرسی . بازم که تشکر زیر خط فقره که ....
سلام دیتابیست رو چک کن . چون دوست من تو Table مربوط به Login خودت یوزرو پسووردی وارد نکردی . برو تو Sql server و دیتابیس تلفنت و تیبل TblLoggin و مثلا یوزر نیم رو 1 و پسوورد رو 1 وارد کن و تو برنامت همونو وارد کن دیگه حالا می خوای یکی باشه می خوای 10 تا یوزر نیم باشه .
خو داداشی شما واست تستین دیگه اررور های سورس رو بگو من رفعش کنم و بفرستمش مرسی .
بازم که تشکرا زیر خط فقره که ....
واسه پستای من آره . بچه ها اررور هارو بگین من رفع کنم اگه داره . اگه نه که هیچ . شب میام ثبت اطلاعاتو می گم . مرسی فعلا
آره من هم قبول دارم
منم تا چندی پیش از اکسس استفاده می کردم ولی دیدم خیلی درد سر داره و برنامه هام یک سر ارور میده، رفتم سمت اسکیوال که علاوه بر مزایای فوق الذکر، سرعت بالائی هم داره
منتها در مورد نصب حداقل هایی که در زمان اجرا نیاز هست در سیستمی غیر از سیستم خودمون، اگر توضیحی بدید خیلی خوبه!
Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|\MyDB\TellDB.mdf;Integrated
Security=True;User Instance=True
فقط یک سوال این جا مطرح میشه که آیا امکان این که پسوند فایل اتچ شده دیتابیس رو تغییر بدیم هست؟
چون شاید نخواسته باشیم که مشتری بفهمه که این فایل چه فایلی هست و احیانا از دست کاری اون بر حذر باشه.
تو اکسس این امکان بود ولی تو اسکیوال یک بار این کار رو کردم برنامه تشخیص نداد!
نه دوست من باید پسووند باشه . خو شما فایل Setup می سازی از پروژت سورسش رو که نمی دی شخص بفمهمه داستان چیه .
بعدشم که شما باید دیتابیس رو بدنی چیه و کیه که بعدا واسه ذخیره تو یه درایوی ازش استفاده کنی . دیتابیس نرم افزار چیزی نیست که از خریدار پنهان کنیمش . قانون برنامه نویسیه .
و جواب سوال اولت دوست من Hossis من از روش اول یعنی
Data Source=(local);Initial Catalog=TellDB;Integrated Security=True
استفاده کردم و پسووندی نیست که بخواد دیده شه . اگه منظورت اینه .
دوست من شما به اینا نیاز داری رو سیستم مقصد
1 ) Sql server 2008
2 ) Microsoft.net framwork 4 و بالاتر
3 ) اگه از کریستال استفاده کنیم تو پروژه به SAP crystal report engine x86 | x64 نیاز داریم .
سلام مجدد به همه .
طبق قولم چند دقیقه ای میشه که بیدار شدم که بهتون ثبت اطلاعات رو بگم .
پروژه رو که دارید یا ساختید . دیتابیس رو هم همینطور .
حالا رو فرم FrmMain ما روی دکمه ثبت اطلاعات کلیک کنید و این کد رو واسه باز کردن صفحه ثبت اطلاعات بنویسید :
FrmRegister.Show()
Me.Hide()
روی منومون هم تو بخض اطلاعات رو ثبت دابل کلیک کنید و هم کد بالا رو بنویسید که از هر 2 جا باز بشه
-----------------------------------------------------------------------------------------------------------------
حالا روی فرم FrmRegister کلیک کنید و روی ثبت اطلاعات دابل کلیک کنید و کد های زیر رو بنویسید :
یادتون نره اول دیتاها :
Imports System.Data
Imports System.Data.SqlClient
و رشته هارو :
Dim con As SqlConnection = New SqlConnection(My.Settings.conn)
Dim cmd As SqlCommand
Dim dr As SqlDataReader
تعریف کنید
-----------------------------------------------------------------------------------------------------------------
توی دکمه ثبت اطلاعات این کدهارو بنویسید :
' ///// error if txt is empty /////
If TxtName.Text = String.Empty Then
MsgBox("نام شخص را وارد كنيد", vbExclamation + vbOKOnly, "پيام")
TxtName.Focus()
Exit Sub
ElseIf TxtLName.Text = String.Empty Then
MsgBox("نام خانوادگی را وارد كنيد", vbExclamation + vbOKOnly, "پيام")
TxtLName.Focus()
Exit Sub
ElseIf TxtTell.Text = String.Empty Then
MsgBox("تلفن شخص وارد كنيد", vbExclamation + vbOKOnly, "پيام")
TxtTell.Focus()
Exit Sub
ElseIf CboGen.Text = String.Empty Then
MsgBox("نوع جنسیت را مشخص كنيد", vbExclamation + vbOKOnly, "پيام")
CboGen.Focus()
Exit Sub
ElseIf TxtAddress.Text = String.Empty Then
MsgBox("آدرس را وارد كنيد", vbExclamation + vbOKOnly, "پيام")
TxtAddress.Focus()
Exit Sub
End If
'///// insert query /////
con = New SqlConnection(My.Settings.conn)
cmd = New SqlCommand()
cmd.Connection = con
cmd.CommandText = "INSERT INTO TblRegister (Fname,Lname,Tell,Address,Gen) VALUES (@Fname,@Lname,@Tell,@Address,@Gen) "
cmd.Parameters.Add("@Fname", SqlDbType.NVarChar, 50).Value = TxtName.Text
cmd.Parameters.Add("@Lname", SqlDbType.NVarChar, 50).Value = TxtLName.Text
cmd.Parameters.Add("@Tell", SqlDbType.NVarChar, 100).Value = TxtTell.Text
cmd.Parameters.Add("@Address", SqlDbType.NVarChar, 50).Value = TxtAddress.Text
cmd.Parameters.Add("@Gen", SqlDbType.NVarChar, 50).Value = CboGen.Text
' ///// check state connection age baz bod khoroji bede o amal insert anjam beshe /////
con.Open()
If con.State = ConnectionState.Open Then
If cmd.ExecuteNonQuery() Then
con.Close()
MessageBox.Show(" اطلاعات ورودی مورد نظر ثبت شد")
End If
End If
cmd.Dispose()
con.Dispose()
توضیحات کد ها :
قسمت اول کد اومدم چک کردم اگه رشته هاشون خالی بود Error بده و Focus کنه روش .
قسمت دوم که کد Insert یا ثبت اطلاعات تو دیتابیسه که پارامترهای ورودیشو به صورت دستی نوشتم و فیلتر هارو دستی وارد کردم حتی مقدار ورودی Data Type هارو و مقدارشنو از TextBox های مورد نظر گرفتم .
قسمت سوم هم میاد چک میکنه که اگه وضعیت ارتباط ما یا کانکشن ما باز بود اطلاعات رو ثبت کن Query خروجی رو بده و کانکشن رو ببند . Con.close و اررور ثبت اطلاعات در صورت صحت عملیات .
و در آخر هم میاد همه کانکشن ها و دستوراتو Dispose یا خارج می کنه .
اینم نمونه انجام شده و ثبت شده به صورت صحیح :
FrmRegister.jpg
-----------------------------------------------------------------------------------------------------------------
توی دکمه پاک سازی این کدهارو بنویسید :
TxtName.Clear()
TxtLName.Clear()
TxtTell.Clear()
TxtAddress.Clear()
این دکمه هم کارش خالی کردن تکس باکس هاست دوستان .
-----------------------------------------------------------------------------------------------------------------
و در آخر توی دکمه بازگشت هم این کدهارو بنویسید :
FrmMain.Show()
Me.Close()
-----------------------------------------------------------------------------------------------------------------
توجه : شما در حال حاضر جایی نمی تونین اطلاعات ثبت شده رو ببینید جز دیتابیستون تو Sql server 2008 خودتون . بازش کنید . برین تو دیتابیس TellDB و روی Table مربوطه همون TblRegister راست کلیک کرده و Edit Top 200 Rows رو کلیک کنید . با اینکار 200 سطر ثبت شده رو میتونین ببینین و ببینید که اطلاعاتتون صحیح ثبت شد . اینم عکساش :
FrmRegisterShowDb.jpg
و Rows
FrmRegisterShowDb2.jpg
-----------------------------------------------------------------------------------------------------------------
این سورس جدید برنامه :
TellBook v2.rar
-----------------------------------------------------------------------------------------------------------------
خو دوستان امشب و ثبت اطلاعات تموم شد . تا فردا دوستان . امیدوارم خوب و مفهموی توضیح داده باشم .
مشکلی بود بگید تا رفع شه .
بهروزجان نگفتی چطوری باید متن داخل مثلا Columns پسورد رو بنویسیم؟؟یعنی چطور اطلاعات وارد کنیم تاپسورد ویوزر نیم مشخص بشه؟؟
داداش منظورتو نفهمیدم . یعنی چی ؟؟
شما به من گفتی باید چی کار کنم که نگه اطلاعات صحیح نیست؟؟اگه میشه پایه ای توضیح بده که مبتدی هایی مثل من هم بفهمیم!!!
درست شد همین جایی که گفتی:توجه : شما در حال حاضر جایی نمی تونین اطلاعات ثبت شده رو ببینید جز دیتابیستون تو Sql server 2008 خودتون . بازش کنید . برین تو دیتابیس TellDB و روی Table مربوطه همون TblRegister راست کلیک کرده و Edit Top 200 Rows رو کلیک کنید . با اینکار 200 سطر ثبت شده رو میتونین ببینین و ببینید که اطلاعاتتون صحیح ثبت شد .رو نخونده بودم.
داداش دستت درد نکنه!!!
دوستت داریم بهروز!!!!!!
من خودم سورسش رو میذارم شما ببین مشکلی داره؟؟آخه سورسی که شما میذاری ازکدهای اصلی خود برنامه ارور میگیره از زیر دانلودش کن:
البته من به جای Fname و Lname گذاشتم:Name و Family حواست باشه.
TellBook2.rar
بهروز جان من الان میخوام فایل دیتابیس SQL رو کپی کنم تو یه کامپیوتر دیگه.کجاست فایلش؟؟
دیتابیس توی سیستم خودته دوست من . تو این مسیر :
C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA
کل دیتابیس هایی که میسازی با Sql server اینجاست .
اوکی ؟؟؟ بوس . من فقط به خاطر شماها پست و وقت میذارم ولی ... فقط بیننده اند.
تویه پست بالا رو نگاه کن 2 تا سورس آپ کردم یکی با دیتابیس و یکی هم بدون دیتابیس . اون با دیتابیس رو دوستان می تونن کپی کنن تو سیستمشون و توی Sql Server 2008 اونو Attach کنن. و برنامه رو اجرا کنن
دستت طلا.فقط من که میام اون رو به فایل خودم کپی کنم ارور زیر رومیده
Error1.png
سیستم رو ریستارت کردم که دیگه اینو نگه اما فایده نداشت!!
داداشی این میگه برنامه یجا دیگه داره از این فایلت استفاده می کنه . شما روی Sql server خودت همین دیتابیس رو ساختی واسه همین اررور می گیره .یا برنامت رو سیستم بازه برو تو Task manager و برنامه ای که نوشتی اونجاست End Task اش کن
خوب دوستان با اینکه تشکری ندارم و هیچ امیدی ولی بازم پست رو ادامه می دم . امشب برنامه رو کامل کردم و سورس پروژه رو تو پست آخر میزارم . اول آموزش هارو بگم بعد میرسیم به سورس .
اول می خوام نحوه حذف اطلاعات رو بگم بهتون .
توی حذف ما ابتدا از جستجو استفاده کردیم و سپس از حذف .
فرم FrmDelete رو بسازید .
تکس باکس ها و دکمه هایی که تو ثبت اطلاعات گذاشتید رو Copy و تو این صفحه Paste کنید . فرم زیر رو بسازید :
Deletefrm.jpg
روی دکمه جستجو کلیک کنید و بالای صفحه اول دیتاهارو تعریف کنید :
Imports System.Data
Imports System.Data.SqlClient
و زیر کلاس فرم :
Dim con As SqlConnection = New SqlConnection(My.Settings.conn)
Dim cmd As SqlCommand
Dim dr As SqlDataReader
و بیاین رو Button مورد نظر و دستورات زیر رو بنویسید:
'/// search data ///
If TxtTell.TextLength > 0 Then
cmd = New SqlCommand()
cmd.Connection = con
cmd.CommandText = "SELECT Fname,Lname,Address,Gen FROM TblRegister WHERE(Tell=@Tell)"
cmd.Parameters.Add("@Tell", SqlDbType.NVarChar, 50).Value = TxtTell.Text
con.Open()
Dim sReader As SqlDataReader = cmd.ExecuteReader()
If sReader.Read() Then
TxtName.Text = sReader.GetValue(0).ToString()
TxtLName.Text = sReader.GetValue(1).ToString()
TxtAddress.Text = sReader.GetValue(2).ToString()
TxtGen.Text = sReader.GetValue(3).ToString()
Else : MessageBox.Show("پیدا نشد")
End If
con.Close()
End If
کد چی می گه ؟؟
1 ) SELECT Fname,Lname,Address,Gen میاد این فیلد هارو از جدول TblRegister فراخونی می کنه به شرطی که ( WHERE ) تلفن ( Tell ) برابر با پارامتر @Tell باشه که پایینش تعریف کردیم . پارامترم اومدیم از این تکس باکس گرفتیم : TxtTell.Text
2 ) اینجا
TxtName.Text = sReader.GetValue(0).ToString()
TxtLName.Text = sReader.GetValue(1).ToString()
TxtAddress.Text = sReader.GetValue(2).ToString()
TxtGen.Text = sReader.GetValue(3).ToString()
هم رشته ها وقتی با sReader که رشته ای از نوع SqlDataReader برای خودندن داده هاست خونده می شن و مقدارش تو تکس باکس مورد نظر بر اساس ایندکسی که خودمون تعیین می کنیم قرار می گیره .
به ترتیب این کد :
Fname,Lname,Address,Gen
و تکس باکس توجه کنید :
TxtName.Text
TxtLName.Text
TxtAddress.Text
TxtGen.Text
در آخرم اگه نباشه می گه پیدا نشد . و تموم .
تا اینجاش اوکی این دیگه ؟؟
حالا روی دکمه حذف دابل کلیک کنید :
و این کدارو بنویسید :
If TxtTell.TextLength > 0 Then
cmd = New SqlCommand()
cmd.Connection = con
cmd.CommandText = "DELETE FROM TblRegister WHERE Tell='" & TxtTell.Text & "'"
con.Open()
Dim count As Integer
count = cmd.ExecuteNonQuery()
con.Close()
If count > 0 Then
MessageBox.Show("اطلاعات مورد نظر حذف شد")
End If
Else : MessageBox.Show("اطلاعات مورد نظر پیدا نشد")
End If
TxtName.Clear()
TxtLName.Clear()
TxtTell.Clear()
TxtAddress.Clear()
TxtGen.Clear()
توضیح کد :
1 ) DELETE FROM TblRegister WHERE Tell='" & TxtTell.Text
واضه می گه پاک کن همه رو از جدول TblRegister به شرطی که تلفن ما با تکس باکس TxtTell.Text برابر
باشه .
آخرشم بعد پاک کردن از دیتابیس میاد تکس باکس هارو خالی می کنه .
اوکی ؟
حالا روی دکمه پاک سازی دابل کلیک کنید و کد زیر رو بنویسید :
TxtName.Clear()
TxtLName.Clear()
TxtTell.Clear()
TxtAddress.Clear()
TxtGen.Clear()
اینم عکس های این پست :
ابتدا شماره رو وارد کنید و دکمه جستجو رو بزنین
Delete1.jpg
اطلاعات به شما نشون داده می شه
Delete2.jpg
حالا بعد از صحت اطلاعات دکمه حذف رو بزنین و اطلاعات حذف می شه .
Delete3.jpg
پست بعدی راجب نمایش اطلاعاته که هی نرین تو Sql Server
-------------------------------------------------------------------------------------------------------
اگه پستم و آموزشم کمکتون کرد تشکر یادتون نره .
تو این پست می خوام نحوه ویرایش اطلاعات رو بگم بهتون .
توی حذف ما ابتدا از جستجو استفاده کردیم و سپس از ویرایش یا Update یا بروز رسانی.
فرم FrmEdit رو بسازید .
تکس باکس ها و دکمه هایی که تو ثبت اطلاعات گذاشتید رو Copy و تو این صفحه Paste کنید . فقط 1 تکس باکس دیگه اضافه کنید واسه نمایش جنسیت و یه کمبو باکس واسه ثبت جنسیت جدید .
یعنی فرم زیر رو بسازید
روی دکمه جستجو کلیک کنید و بالای صفحه اول دیتاهارو تعریف کنید :
Imports System.Data
Imports System.Data.SqlClient
و زیر کلاس فرم :
Dim con As SqlConnection = New SqlConnection
(My.Settings.conn)
Dim cmd As SqlCommand
Dim dr As SqlDataReader
روی دکمه جستجو دابل کلیک کنید و کد زیر رو بنویسید :
'/// search data ///
If TxtTell.Text = String.Empty Then
MsgBox("تلفن شخص را وارد كنيد", vbExclamation + vbOKOnly, "پيام")
TxtTell.Focus()
Exit Sub
End If
If TxtTell.TextLength > 0 Then
cmd = New SqlCommand()
cmd.Connection = con
cmd.CommandText = "SELECT Fname,Lname,Address,Gen FROM TblRegister WHERE(Tell=@Tell)"
cmd.Parameters.Add("@Tell", SqlDbType.NVarChar, 50).Value = TxtTell.Text
con.Open()
Dim sReader As SqlDataReader = cmd.ExecuteReader()
If sReader.Read() Then
TxtName.Text = sReader.GetValue(0).ToString()
TxtLName.Text = sReader.GetValue(1).ToString()
TxtAddress.Text = sReader.GetValue(2).ToString()
TxtGen.Text = sReader.GetValue(3).ToString()
Else : MessageBox.Show("پیدا نشد")
End If
con.Close()
End If
توضیحاتشو قبلا دادم دیگه .
حالا روی دکمه بروز رسانی دابل کلیک کنید و کد زیر رو بنویسید :
'/// update data ///
Try
cmd.CommandText = "UPDATE TblRegister SET Fname=@Fname,Lname=@Lname,Address=@Address,Gen=@Ge n WHERE(Tell=@Tell)"
cmd.Parameters.Add("@Fname", SqlDbType.NVarChar, 50).Value = TxtName.Text
cmd.Parameters.Add("@Lname", SqlDbType.NVarChar, 50).Value = TxtLName.Text
cmd.Parameters.Add("@Address", SqlDbType.NVarChar, 500).Value = TxtAddress.Text
cmd.Parameters.Add("@Gen", SqlDbType.NVarChar, 50).Value = CboGen.Text
con.Open()
Dim count As Integer
count = cmd.ExecuteNonQuery()
con.Close()
If count > 0 Then
MessageBox.Show("بروز رسانی شد")
Else : MessageBox.Show("اطلاعات مورد نظر پیدا نشد")
End If
Catch ex As Exception
MsgBox("لطفا همه گزینه ها را کامل وارد نمایید")
End Try
توضیحات :
1) UPDATE TblRegister SET
آپدیت میکنه تیبل مارو با مقدار های پارامترهای تعریف شده ست می کنش . پارامترها رو هم تعریف کردیم زیرش .
دیگه اررور رو توضیح ندم دیگه زشته
و یه خبر خوش فرم نمایش اطلاعات رو درست کردم واستون که هی نرین تو Sql server همینجا ببینین دیگه
اسمش FrmShowInfo هستش و یه گرید ویو داره که به دیتابیس وصله و تیبل رجیستر رو نشون می ده و یه دکمه بازگشت داره . عکساش پایین هست ببینین دیگه
اینم عکس های این پست :
شماره رو وارد کنید و جستجو رو بزنین
Editform.jpg
اطلاعاتو که دیدین و تائید کردین و تغییر دادین روی دکمه بروز رسانی کلیک کنید و حله دیگه
Editform1.jpg
Editform2.jpg
اینجام فرم نمایشه دیگه ببینین :
Editform3.jpg
دیگه نمی گم تشکر کنین .
واقعا نمی دونم چی بگم . بخدا اهل منت گذاری نیسم و اگه هم می گم تشکر کنید واسه خندس والا می خوام 1 قول 2 قول بازی کنم با تعداش ؟؟؟
من صبح ساعت 8 تا 2 ظهر میرم سر کار . 2 تا 4 میرم تدریس میکنم . تا بیام 5 شده و خوابمم پریده . ساعت 6 به بعدم می رم سالن فوتسال تا 8 9 یا 10 . و با اوج خستگی میام 2 3 ساعت پست رو تکمیل می کنم و آموزش میزارم و کل پست چقدر تشکر می خوره ؟؟؟ مرسی واقعا .
بهروزجان نگفتی چطوری فایلSQL رو تو وی بی نمایش بدیم.اصلا چطوری Add کنیم؟من از همون راهی که برای Microsoft Access میرفتم رفتم وخواستم فایل Mdf روAdd کنم که ارور زیر روداد:
Err4.png
دادش ورژن دیتابیسی که ساختی همونی که با Sql Server خودت ساختی به اسم TELLDB این ورژنش بالاتره از سرورت .
اررور دوم خط 5 هم می گه که یه دیتابیس با همین نام هست . بعد شما اومدی دیتابیس منو Attachکردی .
اگه Attach نکردی بکن ببین چی میگه اگه بازم اررور داد برو دیتابیسی که ساختی رو حذف کن و دیتابیس منو جاش Attach کن . مشکلت رفع می شه
داداش دستت دردنکنه اما منظورت ازAttachکردن چیه؟؟
یعنی اضافه کردن به سرور سیستمت . یعنی دیتابیس رو از 1 جا دیگه میاری تو سیستمت و Attach میکنی . سرچ کن تو پستهام گذاشتم آموزششو
الان من دقیقا باید چیکارکنم؟؟؟؟