PDA

View Full Version : آموزش: نحوه کار با Sql Server 2008 و کد های آن در VB.Net



behrooz69
دوشنبه 11 آذر 1392, 15:59 عصر
با سلام خدمت مدیرای انجمن . خیلی از بچه ها ازم خواستن که اگه می تونم و بلدم بیام یکمی اموزش sql server و کد هاش تو vb رو بگم . می خواستم با اجازتون این آموزش ها رو شروع کنم . منتظر تاییدتونم که شروع کنم .

sagggad
دوشنبه 11 آذر 1392, 16:02 عصر
با سلام خدمت مدیرای انجمن . خیلی از بچه ها ازم خواستن که اگه می تونم و بلدم بیام یکمی اموزش sql server و کد هاش تو vb رو بگم . می خواستم با اجازتون این آموزش ها رو شروع کنم . منتظر تاییدتونم که شروع کنم .
بهروز جان راست میگن.بعضی از ما SQL Server رو زیاد وارد نیستیم و به راهنمایی نیاز داریم.من هم از مدیران محترم میخوام که اجازه ایجاد این تایپیک در این بخش رو بدن!!!:قلب::قلب::قلب:

sagggad
دوشنبه 11 آذر 1392, 16:38 عصر
بهروز جان اول ازهمه من مبتدی ترین سوال رو میپرسم:چطور با استفاده از ویژوال بیسیک2008 یه پایگاه داده SQL ایجاد کنم؟؟و
تفاوت SQL Server با Microsoft Access2010 چیه؟؟
هرکس چیزی میدونه تو تایپیک بذاره!!:قلب:

behrooz69
دوشنبه 11 آذر 1392, 23:17 عصر
جواب سوال اولت دوست من شما با VB.net 2008 یا 2010 می تونی بانک sql express بسازی . که من خودم به شخصه پیشنهاد نمی کنم .
روش ساختشم پروژت رو با عکس می زارم واست .
113436
113435
113437
بهتره که دیتابیستو با خود 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

sagggad
سه شنبه 12 آذر 1392, 08:59 صبح
بهروز جان دستت درد نکنه واقعا بدرد بخوربود.می خواستم بگم برای بالا رفتن فهم موضوع ،
آموزش ساخت مثلا دفترچه تلفن باSQL Server رو آموزش پایه ای بده .اینطوری کسایی مثل من که از SQL Server هیچی نمیدونیم هم یاد میگیریم
موفق باشید

sagggad
سه شنبه 12 آذر 1392, 09:03 صبح
آقا بهروز اگه میشه لطف کن بگو چطوری باید Tableساخت و کجا ذخیره میشه؟؟ آیا میشه ان رو در گرید ویو نمایش بدم؟؟و انواع داده های اون جیه؟؟

behrooz69
سه شنبه 12 آذر 1392, 22:04 عصر
سلام . روی Table فلش گذاشتم . روش راست کلیک کن و Create کن . ساخت و مقدار های هر فیلد با Sql server یکیه در واقع داری از Sql Express استفاده می کنی همینطور که تو Pdf ام نوشتم فقط موتور Sql engine که در صورت نبودن Sql Server از اون استفاده می کنیم و با ساختنش هم به رسورس پروژت اضافه می شه و هم تو Drive c تو پوشه Sql Express توی Data هستش و می شه ازش استفاده کرد . و ورژن که vb.net 2010 نصب می کنه Sql Express 2008 هستش .

امیدوارم مفهوممو رسونده باشم .

behrooz69
سه شنبه 12 آذر 1392, 23:05 عصر
خوب دوستان به صورت آزمایشی ما میایم رو برنامه دفترچه تلفن ساده به صورت تستی کار می کنیم که هم همه آشنا بشن هم به درد همه بخوره هم کسی هم اگه خواست می تونه نظر بده تا همه استفاده کنن .

به نام هستی

مرحله اول ساخت دیتابیس با Sql Server 2008

113461

در این مرحله طبق روی Database راست کلیک کنید . گزینه New Database رو بزنین .

113458

نام دیتابیس رو تو کادر بالا بنویسین من از TellDB استفاده کردم . سپس به Option برید و ببینید که کادر مورد نظر تو عمس رو Sql server 2008 (100) باشه . به باقی چیزا دست نزنین و Default باشه و Ok کنین . دیتابیس ما ساخته شد .

http://uploadkon.ir/uploads/3_375.jpg
تو مرحله بعد می رسیم به ساخت Table مورد نظر برای ثبت اطلاعات .

طبق عکس روی Table راست کلیک کنید و New Table رو بزننین .


113459

http://uploadkon.ir/uploads/5_202.jpg
فیلد های مورد نظر رو وارد کنید و نوع داده ای اونا رو هم طبق عکس وارد کنید . رو به روی Id تیک Allow Null غیر فعال باشد زیرا اجازه خالی وارد کردن به اون داده نشه و سپس واسه اینکه به صورت صعودی با هر رکورد جدید یک Id بگیره میایم تو کادر پایین روی Identity Specification دابل کلیک کنید تا فعال بشه و Yes بشه و گزینه Is Identity رو هم Yes کنید و زیرش هم مشخص میکنید که از چند شروع بشه به صورت پیش فرض از 1 شروع میشه تا ....

http://uploadkon.ir/uploads/6_158.jpg
تو این مرحله Id رو به عنوان کلید اصلی در نظر میگیریم که بعدا اگه Table دیکگه اضافه کردیم بتونیم با این کلید به Table دیگه وصل شیم .


113457
تو این مرحله برای ذخیره دیتابیسمون روی دکمه Save کلیک کرده و طبق عکس توی کادر اسم Table خودمون رو مینویسیم و سپس Ok میکنیم .

http://uploadkon.ir/uploads/9_87.jpg
تبریک میگم شما هم Database رو ساختید هم Table مورد نظر رو .



امیدوارم تا اینجا مفهمومی بوده باشه و راضی باشید در مرحله بعد اولین صفحه برنامه دفترچه تلفن رو شروع میکنیم . مشکلی بود بپرسین .

sagggad
چهارشنبه 13 آذر 1392, 06:34 صبح
بهروزجان منSQL SErver2008 رو نصب کردم ولی هرجامیرم SQL Server Managment رو نمیبینم.چی کارکنم؟؟؟
اگه میشه لطف کن یه توضیحی راجع به Data Type ها هم بده.ممنونم

behrooz69
چهارشنبه 13 آذر 1392, 14:35 عصر
اگه ویندوزت 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 رو نصب کن

sagggad
چهارشنبه 13 آذر 1392, 15:50 عصر
بهروز جان من وقتیSQL Server رو گرفتم یه فایل بود که باید اکستراکت میشد.یعنی زیپ بود.بعد که اکستراکتش کردم خود به خود رفت به C:\TEMP وانوجا فایل باز شدش بود.فولدر های زیادی ایجاد شده بود مثلا:X86-X64-StreamInsight-resourcesو...بعد همونجا یه فایل ستاپ بود من رو اون کلیک کردم ومراحل نصب رو انجام دادم.اما Management وجود نداره!!
واقعا از راهنمایی هات ممنونم

behrooz69
پنج شنبه 14 آذر 1392, 00:18 صبح
خوب دوستان . شرمنده چون من سرکار میرم و زیاد وقت ندارم شبا پست میذارم .

طبق آموزش قبلی یه Table دیگه درست کنین به نام TblLogin و فیلد های اونو اینارو بذارین :
1 ) ID >> Data type : Int
2 ) Username >> Data Type : Nvarchar(50)
3 ) Password >>Data Type : Nvarchar (50)

113491

--------------------------------------------------------------------------------------------------------------
حالا میریم سر وقت برناممون . یه پروژه ایجاد کنید با هر اسمی من نوشتم TellBook .

تو این آموزش می پردازیم به صفحه لاگین یا همون امنیتی برنامه . برنامه رو ضمیمه می کنم ولی خودتون درست کنید که یاد بگیرید .

تو فرمم 2 تا تکس باکس دارم و 2تا هم دکمه 1 ورود و 1 خروج . اینم عکسش . دیگه طراحیش با خودتون
113492


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

از منوی Project آخرین گزینه یعنی Properties پروژتونو انتخاب کنید .
113493

حالا به قسمت 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 کپی کنین و به مشتری بدید .

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

--------------------------------------------------------------------------------------------------------------
حالا میریم سراغ پروژه .
روی دکمه خروج دابل کلیک کنید و کلمه 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

این بدون دیتابیس :
113498

اینم با دیتابیس :
http://uploadkon.ir/uploads/TellBook%20ba%2
0Db.rar (http://uploadkon.ir/uploads/TellBook%20ba%20Db.rar)

تا فردا شب ، شب تون خوش

sagggad
پنج شنبه 14 آذر 1392, 09:20 صبح
بهروز جان سورست نزدیک 100 جا زیرش خط آبی می کشید.اما اونی که از رو آموزشت درست کردم مشکلی نداشت.فقط وقتی که نام کاربری وپسورد رو وارد می کنی باز هم می گه اطلاعات را صحیح وارد کنید!!مشکل چیه؟؟

behrooz69
پنج شنبه 14 آذر 1392, 14:42 عصر
سلام دیتابیست رو چک کن . چون دوست من تو Table مربوط به Login خودت یوزرو پسووردی وارد نکردی :بامزه: . برو تو Sql server و دیتابیس تلفنت و تیبل TblLoggin و مثلا یوزر نیم رو 1 و پسوورد رو 1 وارد کن و تو برنامت همونو وارد کن دیگه حالا می خوای یکی باشه می خوای 10 تا یوزر نیم باشه .

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

behrooz69
پنج شنبه 14 آذر 1392, 14:53 عصر
سلام دیتابیست رو چک کن . چون دوست من تو Table مربوط به Login خودت یوزرو پسووردی وارد نکردی :بامزه: . برو تو Sql server و دیتابیس تلفنت و تیبل TblLoggin و مثلا یوزر نیم رو 1 و پسوورد رو 1 وارد کن و تو برنامت همونو وارد کن دیگه حالا می خوای یکی باشه می خوای 10 تا یوزر نیم باشه .

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

behrooz69
پنج شنبه 14 آذر 1392, 17:57 عصر
:قلب: :گیج: واسه پستای من آره . بچه ها اررور هارو بگین من رفع کنم اگه داره . اگه نه که هیچ . شب میام ثبت اطلاعاتو می گم . مرسی فعلا

Hossis
پنج شنبه 14 آذر 1392, 22:21 عصر
جواب سوال اولت دوست من شما با VB.net 2008 یا 2010 می تونی بانک sql express بسازی . که من خودم به شخصه پیشنهاد نمی کنم .
روش ساختشم پروژت رو با عکس می زارم واست .
113436
113435
113437
بهتره که دیتابیستو با خود 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
آره من هم قبول دارم
منم تا چندی پیش از اکسس استفاده می کردم ولی دیدم خیلی درد سر داره و برنامه هام یک سر ارور میده، رفتم سمت اسکیوال که علاوه بر مزایای فوق الذکر، سرعت بالائی هم داره
منتها در مورد نصب حداقل هایی که در زمان اجرا نیاز هست در سیستمی غیر از سیستم خودمون، اگر توضیحی بدید خیلی خوبه!

Hossis
پنج شنبه 14 آذر 1392, 22:26 عصر
Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|\MyDB\TellDB.mdf;Integrated
Security=True;User Instance=True
فقط یک سوال این جا مطرح میشه که آیا امکان این که پسوند فایل اتچ شده دیتابیس رو تغییر بدیم هست؟
چون شاید نخواسته باشیم که مشتری بفهمه که این فایل چه فایلی هست و احیانا از دست کاری اون بر حذر باشه.
تو اکسس این امکان بود ولی تو اسکیوال یک بار این کار رو کردم برنامه تشخیص نداد!

behrooz69
جمعه 15 آذر 1392, 01:52 صبح
نه دوست من باید پسووند باشه . خو شما فایل Setup می سازی از پروژت سورسش رو که نمی دی شخص بفمهمه داستان چیه .
بعدشم که شما باید دیتابیس رو بدنی چیه و کیه که بعدا واسه ذخیره تو یه درایوی ازش استفاده کنی . دیتابیس نرم افزار چیزی نیست که از خریدار پنهان کنیمش . قانون برنامه نویسیه .

behrooz69
جمعه 15 آذر 1392, 01:54 صبح
و جواب سوال اولت دوست من Hossis من از روش اول یعنی
Data Source=(local);Initial Catalog=TellDB;Integrated Security=True
استفاده کردم و پسووندی نیست که بخواد دیده شه . اگه منظورت اینه .

behrooz69
جمعه 15 آذر 1392, 01:57 صبح
دوست من شما به اینا نیاز داری رو سیستم مقصد

1 ) Sql server 2008
2 ) Microsoft.net framwork 4 و بالاتر
3 ) اگه از کریستال استفاده کنیم تو پروژه به SAP crystal report engine x86 | x64 نیاز داریم .

behrooz69
جمعه 15 آذر 1392, 02:48 صبح
سلام مجدد به همه .
طبق قولم چند دقیقه ای میشه که بیدار شدم که بهتون ثبت اطلاعات رو بگم . :گریه:

پروژه رو که دارید یا ساختید . دیتابیس رو هم همینطور .

حالا رو فرم 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 یا خارج می کنه .

اینم نمونه انجام شده و ثبت شده به صورت صحیح :
113534

-----------------------------------------------------------------------------------------------------------------
توی دکمه پاک سازی این کدهارو بنویسید :
TxtName.Clear()
TxtLName.Clear()
TxtTell.Clear()
TxtAddress.Clear()
این دکمه هم کارش خالی کردن تکس باکس هاست دوستان .

-----------------------------------------------------------------------------------------------------------------
و در آخر توی دکمه بازگشت هم این کدهارو بنویسید :
FrmMain.Show()
Me.Close()

-----------------------------------------------------------------------------------------------------------------
توجه : شما در حال حاضر جایی نمی تونین اطلاعات ثبت شده رو ببینید جز دیتابیستون تو Sql server 2008 خودتون . بازش کنید . برین تو دیتابیس TellDB و روی Table مربوطه همون TblRegister راست کلیک کرده و Edit Top 200 Rows رو کلیک کنید . با اینکار 200 سطر ثبت شده رو میتونین ببینین و ببینید که اطلاعاتتون صحیح ثبت شد . اینم عکساش :
113535

و Rows
113536

-----------------------------------------------------------------------------------------------------------------
این سورس جدید برنامه :

113537
-----------------------------------------------------------------------------------------------------------------
خو دوستان امشب و ثبت اطلاعات تموم شد . تا فردا دوستان . امیدوارم خوب و مفهموی توضیح داده باشم .

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

sagggad
جمعه 15 آذر 1392, 06:40 صبح
بهروزجان نگفتی چطوری باید متن داخل مثلا Columns پسورد رو بنویسیم؟؟یعنی چطور اطلاعات وارد کنیم تاپسورد ویوزر نیم مشخص بشه؟؟

behrooz69
جمعه 15 آذر 1392, 13:00 عصر
داداش منظورتو نفهمیدم . یعنی چی ؟؟

sagggad
جمعه 15 آذر 1392, 13:14 عصر
شما به من گفتی باید چی کار کنم که نگه اطلاعات صحیح نیست؟؟اگه میشه پایه ای توضیح بده که مبتدی هایی مثل من هم بفهمیم!!!

sagggad
جمعه 15 آذر 1392, 13:19 عصر
درست شد همین جایی که گفتی:توجه : شما در حال حاضر جایی نمی تونین اطلاعات ثبت شده رو ببینید جز دیتابیستون تو Sql server 2008 خودتون . بازش کنید . برین تو دیتابیس TellDB و روی Table مربوطه همون TblRegister راست کلیک کرده و Edit Top 200 Rows رو کلیک کنید . با اینکار 200 سطر ثبت شده رو میتونین ببینین و ببینید که اطلاعاتتون صحیح ثبت شد .رو نخونده بودم.
داداش دستت درد نکنه!!!
دوستت داریم بهروز!!!!!!:قلب::قلب::قلب::قلب:

sagggad
جمعه 15 آذر 1392, 14:15 عصر
من خودم سورسش رو میذارم شما ببین مشکلی داره؟؟آخه سورسی که شما میذاری ازکدهای اصلی خود برنامه ارور میگیره از زیر دانلودش کن:
البته من به جای Fname و Lname گذاشتم:Name و Family حواست باشه.
113553

sagggad
جمعه 15 آذر 1392, 14:47 عصر
بهروز جان من الان میخوام فایل دیتابیس SQL رو کپی کنم تو یه کامپیوتر دیگه.کجاست فایلش؟؟

behrooz69
جمعه 15 آذر 1392, 21:05 عصر
دیتابیس توی سیستم خودته دوست من . تو این مسیر :
C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA
کل دیتابیس هایی که میسازی با Sql server اینجاست .

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

behrooz69
جمعه 15 آذر 1392, 21:07 عصر
تویه پست بالا رو نگاه کن 2 تا سورس آپ کردم یکی با دیتابیس و یکی هم بدون دیتابیس . اون با دیتابیس رو دوستان می تونن کپی کنن تو سیستمشون و توی Sql Server 2008 اونو Attach کنن. و برنامه رو اجرا کنن

sagggad
جمعه 15 آذر 1392, 21:35 عصر
دستت طلا.فقط من که میام اون رو به فایل خودم کپی کنم ارور زیر رومیده
113568
سیستم رو ریستارت کردم که دیگه اینو نگه اما فایده نداشت!!

behrooz69
جمعه 15 آذر 1392, 23:04 عصر
داداشی این میگه برنامه یجا دیگه داره از این فایلت استفاده می کنه . شما روی Sql server خودت همین دیتابیس رو ساختی واسه همین اررور می گیره .یا برنامت رو سیستم بازه برو تو Task manager و برنامه ای که نوشتی اونجاست End Task اش کن

behrooz69
شنبه 16 آذر 1392, 23:25 عصر
خوب دوستان با اینکه تشکری ندارم و هیچ امیدی ولی بازم پست رو ادامه می دم . امشب برنامه رو کامل کردم و سورس پروژه رو تو پست آخر میزارم . اول آموزش هارو بگم بعد میرسیم به سورس .
اول می خوام نحوه حذف اطلاعات رو بگم بهتون .
توی حذف ما ابتدا از جستجو استفاده کردیم و سپس از حذف .
فرم FrmDelete رو بسازید .
تکس باکس ها و دکمه هایی که تو ثبت اطلاعات گذاشتید رو Copy و تو این صفحه Paste کنید . فرم زیر رو بسازید :
113644

روی دکمه جستجو کلیک کنید و بالای صفحه اول دیتاهارو تعریف کنید :

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()

اینم عکس های این پست :

ابتدا شماره رو وارد کنید و دکمه جستجو رو بزنین
113646

اطلاعات به شما نشون داده می شه
113643

حالا بعد از صحت اطلاعات دکمه حذف رو بزنین و اطلاعات حذف می شه .
113645

پست بعدی راجب نمایش اطلاعاته که هی نرین تو Sql Server :تشویق:


-------------------------------------------------------------------------------------------------------
اگه پستم و آموزشم کمکتون کرد تشکر یادتون نره .

behrooz69
یک شنبه 17 آذر 1392, 00:02 صبح
تو این پست می خوام نحوه ویرایش اطلاعات رو بگم بهتون .
توی حذف ما ابتدا از جستجو استفاده کردیم و سپس از ویرایش یا 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 هستش و یه گرید ویو داره که به دیتابیس وصله و تیبل رجیستر رو نشون می ده و یه دکمه بازگشت داره . عکساش پایین هست ببینین دیگه :کف:


اینم عکس های این پست :
شماره رو وارد کنید و جستجو رو بزنین
113650

اطلاعاتو که دیدین و تائید کردین و تغییر دادین روی دکمه بروز رسانی کلیک کنید و حله دیگه :گیج::متعجب::قهقهه::بامزه:

113652

113651

اینجام فرم نمایشه دیگه ببینین :
113649

دیگه نمی گم تشکر کنین .

behrooz69
یک شنبه 17 آذر 1392, 00:09 صبح
واقعا نمی دونم چی بگم . بخدا اهل منت گذاری نیسم و اگه هم می گم تشکر کنید واسه خندس والا می خوام 1 قول 2 قول بازی کنم با تعداش ؟؟؟

من صبح ساعت 8 تا 2 ظهر میرم سر کار . 2 تا 4 میرم تدریس میکنم . تا بیام 5 شده و خوابمم پریده . ساعت 6 به بعدم می رم سالن فوتسال تا 8 9 یا 10 . و با اوج خستگی میام 2 3 ساعت پست رو تکمیل می کنم و آموزش میزارم و کل پست چقدر تشکر می خوره ؟؟؟ مرسی واقعا . :عصبانی::افسرده::عصبانی++:

sagggad
یک شنبه 17 آذر 1392, 09:34 صبح
بهروزجان نگفتی چطوری فایلSQL رو تو وی بی نمایش بدیم.اصلا چطوری Add کنیم؟من از همون راهی که برای Microsoft Access میرفتم رفتم وخواستم فایل Mdf روAdd کنم که ارور زیر روداد:
113661

behrooz69
یک شنبه 17 آذر 1392, 23:02 عصر
دادش ورژن دیتابیسی که ساختی همونی که با Sql Server خودت ساختی به اسم TELLDB این ورژنش بالاتره از سرورت .
اررور دوم خط 5 هم می گه که یه دیتابیس با همین نام هست . بعد شما اومدی دیتابیس منو Attachکردی .

اگه Attach نکردی بکن ببین چی میگه اگه بازم اررور داد برو دیتابیسی که ساختی رو حذف کن و دیتابیس منو جاش Attach کن . مشکلت رفع می شه

sagggad
یک شنبه 17 آذر 1392, 23:10 عصر
داداش دستت دردنکنه اما منظورت ازAttachکردن چیه؟؟

behrooz69
دوشنبه 18 آذر 1392, 00:45 صبح
یعنی اضافه کردن به سرور سیستمت . یعنی دیتابیس رو از 1 جا دیگه میاری تو سیستمت و Attach میکنی . سرچ کن تو پستهام گذاشتم آموزششو

sagggad
دوشنبه 18 آذر 1392, 08:25 صبح
الان من دقیقا باید چیکارکنم؟؟؟؟:عصبانی++:

behrooz69
سه شنبه 19 آذر 1392, 00:16 صبح
توی Sql Server روی پوشه دیتابیس راست کلیک کن و Attach رو بزن /. بعد Add رو بزن بعد برو دیتابیس منو انتخاب کن . و اوکی کن تا Execute شه . اکی ؟؟

sagggad
سه شنبه 19 آذر 1392, 08:50 صبح
بازم این ارور رو داد:
113733

behrooz69
پنج شنبه 21 آذر 1392, 22:19 عصر
داداش باید رو اررور بزنی ببینی متنش چیه . ولی احتمالا واسه اینه که 2 تا دیتابیس با 1 اسم و فیلد ها داری . بازم چک کن . ن فردا ادامه پروژه رو میذارم

sagggad
پنج شنبه 21 آذر 1392, 22:35 عصر
دستت دردنکنههههه!

behrooz69
جمعه 22 آذر 1392, 14:14 عصر
سلام دوستان شرمنده چند روزی تاخیر داشتم خوب سرم شلوغ بود .
امروز می خوام سرچ و نمایش اطلاعات رو بگم و کارو تموم کنم .
سرچ و نمایش اطلاعات رو تو مثال های قبل توضیح دادم کداشم هست . پس جدید نیست .
ولی نمایش اطلاعات رو فیلتر بندی کردم .

---------------------------------------------------
1 فرم بسازید اینجوری :

113881

روی دکمه دابل جستجو کلیک کنید و بالای صفحه اول دیتاهارو تعریف کنید :

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
توضیحاتشو قبلا دادم دیگه . :لبخند::بامزه:

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

113880

behrooz69
جمعه 22 آذر 1392, 15:08 عصر
بچه ها تا 2 ساعت دیگه فرم اطلاعات و سورس کامل پروژه رو میذارم . فعلا دارم میرم سالن فوتسال :قلب:

behrooz69
جمعه 22 آذر 1392, 17:45 عصر
سلام . طبق قولم اومدم .

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

-----------------------------------------------------------------
فرم زیر رو درست کنید :

113893
یه Data Grid View بذارید و به Table خودتون وصلش کنید . Columns هاشو فارسی کنید . ID رو حذف کنید . واسه شمارش بعدا می تونین از SUM تو Sql استفاده کنید تا تعداد رو بدست بیارین .

دیگه اضافه کردن یا کم کردن Columns دست خودتونه .
113895

توی تکس باکس روی تکس باکس تلفن دابل کلیک کنید و تو رویداد TextChanged اون کد زیر رو واسه فیلتر کردن بر حسب شماره تلفن بنویسید :

TblRegisterBindingSource.Filter = "Tell Like '*" & TxtTell.Text & "*'"

توی تکس باکس روی تکس باکس نام دابل کلیک کنید و تو رویداد TextChanged اون کد زیر رو واسه فیلتر کردن بر حسب نام بنویسید :

TblRegisterBindingSource.Filter = "Fname Like '*" & TxtName.Text & "*'"

توی تکس باکس روی تکس باکس نام خانوادگی دابل کلیک کنید و تو رویداد TextChanged اون کد زیر رو واسه فیلتر کردن بر حسب نام خانوادگی بنویسید :

TblRegisterBindingSource.Filter = "Lname Like '*" & TxtLName.Text & "*'"

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

113894

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


113896

sagggad
جمعه 22 آذر 1392, 19:10 عصر
بهروز جان اصلش همینه که چه جوری به تیبل خودمون وصل کنیم؟؟

behrooz69
جمعه 22 آذر 1392, 23:15 عصر
بفرما دوست من . اینم آموزشش

توی فرمتون 1 DataGridView بذارید و اسمش رو هرچی دوست داشتید بذارید . از اینجا بیاریدش از Toolbox

113918

ووقتی گذاشتینش یه پنجره اینجوری میاد :

113917
قسمت 1 : اینجا تیبل خودتونو انتخاب می کنین یا اگه نبود اضافه می کنید .
قسمت 2 : ستون هاتونو تغییر میدین
قسمت 3 : اضافه کردن ، حذف کردن و تغییر دادن و مرتب سازی رو حذف یا فعال میکنید .

بعد از زدن کمبو باکس تو قسمت اول به این صفحه میرین
113916

قسمت 1 : اینجا تیبل خودتونو انتخاب می کنین
قسمت 2 : می تونین Dataset مورد نظر رو دستی بسازید و اضافه کنید . ویزاردیه بلدین دیگه .
از گزینه Add Project Data source هم می تونن دیتاسورس به پروژتون اضافه کنید .

بعد از اضافه کردن Table یه همچین صفحه بهتون نشون می ده که مهمترین بخششه .

113915

تو سمت چپ می بینین که ID انگلیسی نوشته شده و واسه تغییر Header ستون ها باید Edit Columns رو بزنین تا به پنجره سمت راست واستون باز بشه .

از قسمت Select Columns ستون های مورد نظر رو انتخاب میکنید اول ID رو حذف کنید . از دکمه Remove واسه حذف کردن و از دکمه Add واسه اضافه کردن استفاده کنید .

Columns نام که Fname هست رو انتخاب کنین سمت راست با استفاده از Header Text می تونین تغییرش بدید . بنویسید نام . تنظیماتش اختیاریه .
بقیه رو هم همینجوری درست کنین. نام خانوادگی و تلفن و آدرس و جنسیت رو میگمااا . :قهقهه: اینجوری

113914

-----------------------------------------------------------------------------------------------------------

خوب کارمون تموم شد . حالا میایم 1 سری تنظیمات کوچولو واسه دیتاگریدمون انجام میدیم .
اولیش راست به چپ کردن دیتاگریده . از سمت راست یعنی Properties دیتاگریدمون RightToLeft رو Yes می کنیم . بعد میایم پاین تو قسمت Layout تنظیمات Anachor , AutoSizeColumns ,AutoSizeRow
رو تغییر میدیم . اینارو میگم :لبخند:

http://uploadkon.ir/uploads/grid6.jpg

Anachor واسه جایگذاری دیتاگریده وقتی فرمم ما بزرگ یا کوچیک میشه . بقیه چیزارو هم می شه با این درست کردا . مثل دکمه ها یا تکس باکس ها که وقتی فرم رو بزرگ یعنی Maximize کردی اجزات بهم نریزه و سر جای خودش قرار بگیره .
اینو هر 4 تا جاشو فعال کنید .

-----------------------------------
AutoSizeColumns رو بذارید روی Fill که وقتی بزرگ شد فرمتون کل دیتار بگیره .

-----------------------------------
AutoSizeRow رو هم به همه سلول ها نسبت بدید .
-----------------------------------

این حالت نرمال فرم :
http://uploadkon.ir/uploads/grid7.jpg

اینم حالت بزرگ شده فرم :
http://uploadkon.ir/uploads/grid8.jpg


اوکیه ؟؟؟ کار با Properties سلیفه ایه و مربوط به کارتون و پروژتون . یا حق

آقا سجاد حله ؟؟ :بوس::بامزه:

sagggad
جمعه 22 آذر 1392, 23:24 عصر
نه داداش من خنگ تر از این حرفا هستم.من میگم چه جوری باید اون فایل Mdf رو وارد برنامه کنیم.نمایشش تو گرید ویو زیاد کار سختی نیست
ممنونم داداش

behrooz69
شنبه 23 آذر 1392, 00:37 صبح
این سوالت ::عصبانی::عصبانی::عصبانی::عصب انی::عصبانی::عصبانی::عصبانی:
بهروز جان اصلش همینه که چه جوری به تیبل خودمون وصل کنیم؟؟

یعنی واقعا دستم بهت برسه اینجوریت میکنم :عصبانی++:

این میشه تیبل وصل کردن . اون سوالی که الان شما پرسیدی یعنی این :
من میگم چه جوری باید اون فایل Mdf رو وارد برنامه کنیم.
این یعنی اضافه کردن فایل دیتابیس به برنامه . :عصبانی++::عصبانی::گریه:

داداشی نیاز نیست دیتابیس رو به برنامه من اضافه کنی . فقط شما اونو تو sql server 2008 خودت که رو سیستمت نصبه Attach کن دادا .

:بوس: یا علی

sagggad
شنبه 23 آذر 1392, 09:15 صبح
حالا خودتو نزن من وقتی اون رو Attch کنم خود به خود وارد وی بی میشه؟؟

sagggad
شنبه 23 آذر 1392, 09:21 صبح
بعدشم این ارورمن رو کشته::عصبانی++::عصبانی++::عصبا نی++::عصبانی++::عصبانی++::افسرد ه::عصبانی++:
http://barnamenevis.org/attachment.php?attachmentid=113733&d=1386654640

barrai
شنبه 23 آذر 1392, 16:05 عصر
سلام به همه عزیزان علی الخصوص آقا بهروز گل
آقا دمت گرم واقعا به همچین تاپیکی احتیاج داشتیم خیلی حال کردم
چند تا چیز دیگه هم به ذهنم رسیده که ایشالا سر وقت مزاحمتون میشم
خدا قوت

behrooz69
شنبه 23 آذر 1392, 21:05 عصر
قربونت دادا تا جایی که بتونم کمک میکنم .

sagggad
شنبه 23 آذر 1392, 21:36 عصر
پس من رو چرا کمک نمی کنه کسی؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟!!!!!:گری ه::گریه::گریه::گریه:
با این ارور چه کار کنم؟؟هیچ اطلاعات بیشتری هم نداره فقط همین ارور رومیده:
http://barnamenevis.org/attachment.php?attachmentid=113733&d=1386654640

sagggad
شنبه 23 آذر 1392, 22:51 عصر
داداش دستت درد نکنه اون مشکلم حل شد ولی این ارور رو هر کار میکنم در حین Add کردن دیتابیس میده:
دیتابیس خودمو حذف کردم بجاش مال تو رو Attach کردم بازم همین ارور رو میده.
توروخدا کمک کن!!!!!!!! من با وی بی 2008 کار میکنم

http://barnamenevis.org/attachment.php?attachmentid=113661&d=1386484405

behrooz69
یک شنبه 24 آذر 1392, 00:11 صبح
داداش یه شب بهت خبر میدم که با team viewer بیام تو سیستمت. این اروور هم میگه نسخه دیتابیس من از sql server شما جدیدتره . و میگه یه دیتبیس با همین نام تو مسیری ک تو عکس هست وجود داره ک داره استفاده میشه. داش پس درک برنامه نویسی کو؟؟؟ مهم نیست حتما دیتابیس منو بذاری تو پروژت که . خودت بساز 2 تا تیبل با 8 تا فیلد دیگه . اطلاعاتتتم خودت وارد کن. تعریف رشته conn هم تو setting برنامه رو عوض کن و ادرس دیتابیس جدید رو بده . یه دیتابیس رو سیستم خودت بساز مثلا TellSajad

یا علی

sagggad
یک شنبه 24 آذر 1392, 08:29 صبح
داداش ممنون که جواب میدی.من اول همین کار رو کرده بودم و خودم تیبل رو ساختم اما اون موقع باز می گفت نسخه Sql Server همخونی نداره.فکرکنم میگفت پایین تره.
چکارکنم؟؟؟:گریه::گریه::گریه: :گریه::گریه::گریه:

behrooz69
یک شنبه 24 آذر 1392, 21:16 عصر
مگه ورژن Sql server تو چنده داداشی ؟؟؟ Microsoft Sql Server 2008 r2 رو نصب کن

sagggad
یک شنبه 24 آذر 1392, 22:32 عصر
همین ورژن دقیقا نصبه با ویژوال استودیو 2008.توروخدا یه راه حلی بهم بده

behrooz69
دوشنبه 25 آذر 1392, 19:52 عصر
داداشی Sql server 2008 با vb.net 2008 هم خونی نداره به جان مادرم . تورو جون من عوضش کن :قهقهه::لبخند: ویژوال استودیو دات نت 2010 یا 2013 رو نصب کن و با اون کار کن. اوکی می شه .

barrai
سه شنبه 26 آذر 1392, 10:33 صبح
سلام آقا بهروز ممنون از وقتی که میذاری
من موقع اضافه کردن تیبل به مشکل خوردم که عکس پیغام را برات میذارم نمیدونم بابت چیه
sql server 2008 && vs2013
در ضمن یه مورد دیگه تو فرم ادیت با زدن شماره تلفن و زدن دکمه جستجو اطلاعات اون فراخونی میشه ولی اگه ما جنسیت جدید را وارد نکنیم جای خالی جایگزین جنسیت قبلی میشه و این یعنی که باید جنسیت تو قسمت جدیدش نوشته بشه حتی اگه تکراری باشه اینم اگه درستش کنید خوب میشه
ممنون

sagggad
چهارشنبه 27 آذر 1392, 09:33 صبح
داداش بهروز گلم با راهنمایی هاتون مشکلات رفع شد به جز یه ارور:
114095
تو رو خدا جواب بده:افسرده:

barrai
چهارشنبه 27 آذر 1392, 12:38 عصر
مشکل من با پاک کردن vs2013 و نصب vs2012 حل شد ممنون از دوستان

sagggad
چهارشنبه 27 آذر 1392, 12:43 عصر
من 2012 رو دارم ولی این ارور رو میده:
114102

sagggad
جمعه 29 آذر 1392, 22:46 عصر
با تشکر از تمام بچه ها به خصوص آقا بهروز گل مشکلم حل شد.
حالا یه چند تا سوال از استاد بهروز دارم:
1-اگه یادتون باشه گفته شد:در جایی که میخوایم به برنامه آدرس دیتابیس رو بدیم اگر دیتابیس در محل مورد نظر خودمون ذخیره شده باشه باید از کد زیر استفاده کنیم

Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|\MyDB\TellDB.mdf;Integrated Security=True;User Instance=True

حالا سوال من اینه که آیا باید این آدرس رو هم مثل وقتی که Local هست در Setting پروژه کپی کرد؟؟
وسوال دومم اینه که در این کد گفته شده:SQL Express.آیا اگه از نسخه های دیگه استفاده شده باشه باید به جای این کلمه چی گذاشت؟؟
ممنونم

behrooz69
جمعه 29 آذر 1392, 23:03 عصر
دوست من Baraii ورژن vb شما چنده ؟؟؟ ورژن sql server شما چنده ؟؟ این 2 تا فک کنم با هم همخونی ندارن چون به ورژنش گیر داده . یا sql server 2008 رو بد نصب کردی دوست من

behrooz69
جمعه 29 آذر 1392, 23:33 عصر
با تشکر از تمام بچه ها به خصوص آقا بهروز گل مشکلم حل شد.
حالا یه چند تا سوال از استاد بهروز دارم:
1-اگه یادتون باشه گفته شد:در جایی که میخوایم به برنامه آدرس دیتابیس رو بدیم اگر دیتابیس در محل مورد نظر خودمون ذخیره شده باشه باید از کد زیر استفاده کنیم

Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|\MyDB\TellDB.mdf;Integrated Security=True;User Instance=True

حالا سوال من اینه که آیا باید این آدرس رو هم مثل وقتی که Local هست در Setting پروژه کپی کرد؟؟
وسوال دومم اینه که در این کد گفته شده:SQL Express.آیا اگه از نسخه های دیگه استفاده شده باشه باید به جای این کلمه چی گذاشت؟؟
ممنونم

سوال اولت آقا سجاد : من توی توضیحات گفتم که واسه چی به Setting پروژه مسیر دیتابیسو معرفی میکنیم . چون دیگه نیاز نباشه هربار تو برنامه بیایم هی کد بالا رو بنویسیم . فقط بنویسیم My.setting.con همین .

سوال دومت :لوکال رو هم تو پست های دوم به بعد توضیح دادم که چرا لوکال استفاده کنیم و چرا متغییر . لوکال تو سیستم خودته و اگه بخوای برنامه رو به کسی بدی باید 100 % به طرف دیتابیسی که تو سیستم خودت ( لوکال ) ساختی رو بدی و اونم دیتابیس رو تو sql server 2008 خودش Attach کنه.

ولی روش متغییر اینجوری نیست و دلیل استفاده کردن از کلمه sqlexpress هم اینه که وقتی دیتابیس رو متغییر تعریف می کنیم و همراه پروژه میدیمش اگه رو سیستم sql server 2008 نصب نبود فقط با نصب موتور Engine خود Sql Express 2008 برناممون اجرا شه .

این موتور تو سایتا و تو خودت پک دی وی دی sql server 2008 یا Visual Studio 2010 هستش دوست من.

امیدوارم بدردت خورده باشه . یا حق

نسرین2000
شنبه 30 آذر 1392, 12:34 عصر
سلام
از آموزش خوبتون تشکر می کنم
خیلی عالی و واضح توضیح دادید
یه سوال : وقتی کدهای cmd.dispose() , con.dispose() را می نویسم اولین بار که اطلاعات رو ثبت می کنم همه چیز درست پیش می ره و اطلاعاتم ثبت می شه و تکس باکسها خالی می شه ولی برای نفر بعد که اطلاعات رو وارد می کنم و ثبت رو می زنم در قسمت connection.open(قسمتی که بانک اطلاعاتی رو باز می کنم ) ارور زیر را می دهد و وقتی این دو خط را پاک می کنم مشکل حل می شود .
the connectionstring property has not been initialized
اگر این دو خط را ننویسم و خالی نکنم مشکلی ایجاد می شود ؟

sagggad
شنبه 30 آذر 1392, 14:44 عصر
استاد من یه مشکل خیط دارم:
این دیتابیس به خوبی تو سیستم خودم کار میکنه.البته سیستمم 32 بیتی هست.اما وقتی تو یه سیستم 64 بیتی با همون ویندوز میخوام اجراش کنم ارور زیر رو میده:
114230

behrooz69
شنبه 30 آذر 1392, 23:48 عصر
سلام
از آموزش خوبتون تشکر می کنم
خیلی عالی و واضح توضیح دادید
یه سوال : وقتی کدهای cmd.dispose() , con.dispose() را می نویسم اولین بار که اطلاعات رو ثبت می کنم همه چیز درست پیش می ره و اطلاعاتم ثبت می شه و تکس باکسها خالی می شه ولی برای نفر بعد که اطلاعات رو وارد می کنم و ثبت رو می زنم در قسمت connection.open(قسمتی که بانک اطلاعاتی رو باز می کنم ) ارور زیر را می دهد و وقتی این دو خط را پاک می کنم مشکل حل می شود .
the connectionstring property has not been initialized
اگر این دو خط را ننویسم و خالی نکنم مشکلی ایجاد می شود ؟

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

' ///// 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()

behrooz69
شنبه 30 آذر 1392, 23:51 عصر
استاد من یه مشکل خیط دارم:
این دیتابیس به خوبی تو سیستم خودم کار میکنه.البته سیستمم 32 بیتی هست.اما وقتی تو یه سیستم 64 بیتی با همون ویندوز میخوام اجراش کنم ارور زیر رو میده:
114230

داداشی ورژنMicrosoft .net frameworket b با سیستم ی که 64 بیتیه نمی خونه . تو برنامه هات دات نت فریم ورک 4.5 به بالا رو نصب داری و رو سیستمی که برنامه رو اجرا کردی و Sql توش داری نسخه پایین ترشو . تست کن نصبش کن فریم وورکو . اگه نشد تو Vb قسمت Any cpu رو انتخاب کن هم 86 و هم 64 بیتی.

یا حق

نسرین2000
یک شنبه 01 دی 1392, 10:13 صبح
سلام
ممنون بابت آموزش خوبتون
من تو پروژم فیلد نام و نام خانوادگی رو می زنم و جستجو می کنم ،
مثلا نام و نام خانوادگی را مریم عدل می زنم برای اولین بار درست نشون می ده ولی اگه نام رو به فاطمه تغییر بدم ولی با همون فامیل (عدل) و دوباره دکمه جستجو رو بزنم ارور زیر را می دهد .
The variable name '@first_name' has already been declared. Variable names must be unique within a query batch or stored procedure.

نسرین2000
یک شنبه 01 دی 1392, 10:21 صبح
یه مشکل دیگه :گریه:
وقتی برای اولین بار نام و نام خانوادگی رو جستجو می کنم و نشون می ده اطلاعات رو ، دکمه حذف رو که می زنم پیغام "پیدا نشد " رو نمایش می ده چرا؟
یعنی اصلا تشخیص نمی ده که این اطلاعات تو دیتا بیس هست تا delete بکنه . چرا؟
کدهای مربوط به حذف نام و نام خانوادگی رو هم به صورت زیر نوشتم :
If (txtfirst_name.TextLength > 0 And txtlast_name.TextLength > 0) Then
objcommand.Connection = objconnection
objcommand.CommandText = "DELETE FROM guest WHERE (first_name='" & txtfirst_name.Text & "' and last_name='" & txtlast_name.Text & "')"
objconnection.Open()
Dim count As Integer
count = objcommand.ExecuteNonQuery()
objconnection.Close()
If count > 0 Then
MessageBox.Show("اطلاعات مورد نظر حذف شد")
Else
MessageBox.Show("اطلاعات مورد نظر پیدا نشد")
End If
End If
txtfirst_name.Clear()
txtlast_name.Clear()
txtfather_name.Clear()
txtno_shenasnameh.Clear()
txtdate_tavalod.Clear()
txtmahale_tavalod.Clear()
txtphone.Clear()
txtaddress.Clear()

sagggad
یک شنبه 01 دی 1392, 13:02 عصر
یه مشکل دیگه :گریه:
وقتی برای اولین بار نام و نام خانوادگی رو جستجو می کنم و نشون می ده اطلاعات رو ، دکمه حذف رو که می زنم پیغام "پیدا نشد " رو نمایش می ده چرا؟
یعنی اصلا تشخیص نمی ده که این اطلاعات تو دیتا بیس هست تا delete بکنه . چرا؟
کدهای مربوط به حذف نام و نام خانوادگی رو هم به صورت زیر نوشتم :
If (txtfirst_name.TextLength > 0 And txtlast_name.TextLength > 0) Then
objcommand.Connection = objconnection
objcommand.CommandText = "DELETE FROM guest WHERE (first_name='" & txtfirst_name.Text & "' and last_name='" & txtlast_name.Text & "')"
objconnection.Open()
Dim count As Integer
count = objcommand.ExecuteNonQuery()
objconnection.Close()
If count > 0 Then
MessageBox.Show("اطلاعات مورد نظر حذف شد")
Else
MessageBox.Show("اطلاعات مورد نظر پیدا نشد")
End If
End If
txtfirst_name.Clear()
txtlast_name.Clear()
txtfather_name.Clear()
txtno_shenasnameh.Clear()
txtdate_tavalod.Clear()
txtmahale_tavalod.Clear()
txtphone.Clear()
txtaddress.Clear()


سلام دوست من.شما براچی کد if رو داخل پرانتز نوشتید؟؟
If (txtfirst_name.TextLength > 0 And txtlast_name.TextLength > 0) Then
این ممکنه باعث اشکال باشه!

behrooz69
دوشنبه 02 دی 1392, 09:56 صبح
سلام دوست من.شما براچی کد if رو داخل پرانتز نوشتید؟؟
If (txtfirst_name.TextLength > 0 And txtlast_name.TextLength > 0) Then
این ممکنه باعث اشکال باشه!


سلام . نه دستور If من مشکل ساز نمی کنه و میاد میگه اگه تکس باکس من مقدارش و طولش بزرگتر از 0 بود عملیات رو انجام به .

بعد دوست من شما میای 1 بار دستورات رو می خونی درست . بعدش میای همه txt هاتو clear میکنی و پاک میکنی و دکمه حذف رو میزنی به نظرت برنامه چی رو پیدا کنه ؟؟؟

من برنامه رو گذاشتم واسه آموزش شما می تونی برنامه رو بهینه کنی و دوباره بفرسی . هدف من آموزش کار با عملیات اصلی Sql بود.

barrai
سه شنبه 03 دی 1392, 08:04 صبح
آقا بهروز اگه من بخوام یه دیتا گرید ویو هم بزارم و اطلاعات بعد از ثبت شدن تو دیتا گرید ویو هم نشون داده بشه چیکار باید بکنم؟
ممنون

sagggad
سه شنبه 03 دی 1392, 08:19 صبح
آقا بهروز اگه من بخوام یه دیتا گرید ویو هم بزارم و اطلاعات بعد از ثبت شدن تو دیتا گرید ویو هم نشون داده بشه چیکار باید بکنم؟
ممنون

سلام دوست من.من هم اول با این موضوع مشکل داشتم.اما الان ویدئوی زیر رو واست ساختم دان کن قشنگ متوجه میشی.فقط چون حجمش 3 مگابایت هست نتونستم تو سایت آپلودش کنم .
لینک دانلود: http://www.uplooder.net/cgi-bin/dl.cgi?key=b16c2a6f33ad4261f82007bd66a09667
موفق باشید:لبخندساده:

barrai
سه شنبه 03 دی 1392, 14:12 عصر
یه سوال دیگه
چطوری میتونم تو فرم ویرایش به جای تکست باکس ، کمبو باکس بزارم و از لیست کشویی شماره تلفن را انتخاب کنم و با انتخاب شماره تلفن باقی اطلاعات سر جاهای خودش بشینه ؟
ممنون

behrooz69
سه شنبه 03 دی 1392, 20:46 عصر
آقا بهروز اگه من بخوام یه دیتا گرید ویو هم بزارم و اطلاعات بعد از ثبت شدن تو دیتا گرید ویو هم نشون داده بشه چیکار باید بکنم؟
ممنون


داداشه من برنامه من تو بخش نمایش اطلاعاتش دیتا گرید ویو هست دیگه !!!! نیاز نیست دوباره بذاری که

barrai
سه شنبه 03 دی 1392, 20:47 عصر
سلام دوست من.من هم اول با این موضوع مشکل داشتم.اما الان ویدئوی زیر رو واست ساختم دان کن قشنگ متوجه میشی.فقط چون حجمش 3 مگابایت هست نتونستم تو سایت آپلودش کنم .
لینک دانلود: http://www.uplooder.net/cgi-bin/dl.cgi?key=b16c2a6f33ad4261f82007bd66a09667
موفق باشید:لبخندساده:
ممنون از حسن توجهتون ولی اون چیزی که من میخواستم نبود یعنی من بعد از ثبت اطلاعات در بانک همون موقع تو دیتا گرید ویو هم ببینم

behrooz69
سه شنبه 03 دی 1392, 21:03 عصر
یه سوال دیگه
چطوری میتونم تو فرم ویرایش به جای تکست باکس ، کمبو باکس بزارم و از لیست کشویی شماره تلفن را انتخاب کنم و با انتخاب شماره تلفن باقی اطلاعات سر جاهای خودش بشینه ؟
ممنون


باید یه کمبو باکس بذاری و وصلش کنی به دیتابیس . بعد بیای بر حسب اون مقدار جستجو کنی . تکس باکس بهتره چون دست کاربر بازه .

behrooz69
سه شنبه 03 دی 1392, 21:08 عصر
سلام آقا بهروز ممنون از وقتی که میذاری
من موقع اضافه کردن تیبل به مشکل خوردم که عکس پیغام را برات میذارم نمیدونم بابت چیه
sql server 2008 && vs2013
در ضمن یه مورد دیگه تو فرم ادیت با زدن شماره تلفن و زدن دکمه جستجو اطلاعات اون فراخونی میشه ولی اگه ما جنسیت جدید را وارد نکنیم جای خالی جایگزین جنسیت قبلی میشه و این یعنی که باید جنسیت تو قسمت جدیدش نوشته بشه حتی اگه تکراری باشه اینم اگه درستش کنید خوب میشه
ممنون

تو دکمه ثبت بیا شرط بذار که اگه تکس باکس جنسیت خالی بود اررور بده اینجوری :

If TxtGensiyat.Text = String.Empty Then
MsgBox("نوع جنسیت را وارد كنيد", vbExclamation + vbOKOnly, "پيام")
TxtGensiyat.Focus()
Exit Sub
End If

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

یا علی

barrai
سه شنبه 03 دی 1392, 21:57 عصر
باید یه کمبو باکس بذاری و وصلش کنی به دیتابیس . بعد بیای بر حسب اون مقدار جستجو کنی . تکس باکس بهتره چون دست کاربر بازه .
میشه بگید چه جوری ؟

behrooz69
پنج شنبه 05 دی 1392, 20:36 عصر
میشه بگید چه جوری ؟

داداشی سرچ کن تو انجمن هست . من اضافه کردن یه تیبل از دیتابیس رو به کمبو باکس میذارم . باقیش با خودت . چون خودم کار نکردم روش هنوز داداشی .


Private Sub CboNoeMahsol()


'// tabee farakhani select 1 field az jadval db be combobox , DISTINCT : bedon tekrar

con = New SqlConnection(My.Settings.conn)

'// age con ma baste bod ono baz mikone

If con.State = ConnectionState.Closed Then
con.Open()
End If

Dim da As New SqlDataAdapter("select Distinct Name from TableShoma", con)

Dim ds As New DataTable


da.Fill(ds)

ComboName.DataSource = ds

ComboName.DisplayMember = "Name"

'// age con ma baz bod ono mibande

If con.State = ConnectionState.Open Then
con.Close()
End If


End Sub


بعدش تو Combo مورد نظر که قراره اطلاعات ما نشون داده شه این تابع رو فراخوانی می کنیم با Call اینجوری
1
2
3

Private Sub ComboNameMahsol_DropDown(ByVal sender As Object, ByVal e As System.EventArgs) Handles ComboNameMahsol.DropDown
Call CboNoeMahsol()
End Sub

behrooz69
پنج شنبه 05 دی 1392, 21:31 عصر
سلام بچه ها . خو خودمم درگیر این بودم که چرا اررور باز بودن دیتابیس میده وقتی کار انجام شده یا بیشتر از 1 بار رو دکمه جستجو یا بروز رسانی یا هرچیزی کلیک میشه .

1 نمونش تو فرم ویرایش اطلاعات وقتی رو جستجو کلیک میکنید و بروز رسانی میزنید دفعه دیگه که کلیک میکنه اررور میده که همه رو وارد کنید اگه برید تو کد و قسمت آخر Catch رو به این تغییر بدید تا اررور رو بفهمید اینجوری :

Catch ex As Exception
MsgBox(ex.Message)
End Try

خو حالا واسه رفع مشکلمون من اول میام چک میکنم که اگه Connection من بسته بود اونو باز کنم .

بعد کارامو انجام بدم موقع دریافت اطلاعات یا همون Query از Sql میام شرط بذارم که اگه Connection ما وضعیتش همچنان باز بود بیا خروجی بده .

بعد که خروجی داد بیام Connection رو ببندم .

اینم کدش تو دکمه سرچ :

If TxtTell.Text = String.Empty Then
MsgBox("تلفن شخص را وارد كنيد", vbExclamation + vbOKOnly, "پيام")
TxtTell.Focus()
Exit Sub
End If

If TxtTell.TextLength > 0 Then

If con.State = ConnectionState.Closed Then
con.Open()
End If

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()
If con.State = ConnectionState.Open Then
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()
con.Close()
Else : MessageBox.Show("پیدا نشد")
End If
End If


End If

اینم کدش تو دکمه بروز رسانی :

Try
If con.State = ConnectionState.Closed Then
con.Open()
End If
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()
If con.State = ConnectionState.Open Then
Dim count As Integer
count = cmd.ExecuteNonQuery()

If count > 0 Then
MessageBox.Show("بروز رسانی شد")
con.Close()
Else : MessageBox.Show("اطلاعات مورد نظر پیدا نشد")
End If

End If

Catch ex As Exception
MsgBox(ex.Message)
End Try


همه پروژه هاتونم میتونید از این 2تا تیکه کد استفاده کنید .

swallow.pa
جمعه 06 دی 1392, 18:39 عصر
با سلام از آقا بهروز و اموزش مفيدشان
ايا تو sql server express 2008 امكان داره كه پشتيبان فول - و همچنين از تراكنشها بصورت اتومات انجام بشه
ممنون

swallow.pa
جمعه 06 دی 1392, 18:39 عصر
با سلام از آقا بهروز و اموزش مفيدشان
ايا تو sql server express 2008 امكان داره كه پشتيبان فول - و همچنين از تراكنشها بصورت اتومات انجام بشه
ممنون

behrooz69
جمعه 06 دی 1392, 20:09 عصر
سلام دوست من منظورت رو نفهمیدم .
ولی اگه منظورت پشتیبان گیری از بانک خودته که تو بخش Backup & Restore تو بخش Sql server این فروم موجوده .

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

وقتی بکاپ گرفت بعد برنامه بسته شه اینجوری :

Dim s As String
s = MsgBox("آیا مایل به خروج از برنامه هستید؟ ", MsgBoxStyle.YesNo + MsgBoxStyle.Question, Title:="هشدار")
If s = vbYes Then
Try

Dim cnn As New SqlConnection("Data Source=(local);Initial Catalog=Sardkhone;Integrated Security=True")

Dim cmd As New SqlCommand
cnn.Open()
Dim query As String = "BACKUP DATABASE [Sardkhone] TO DISK =N'E:\Sardkhone.BAK'"
cmd.CommandText = query
cmd.Connection = cnn
cmd.ExecuteNonQuery()
MsgBox("پشتیبانگیری با موفقیت صورت گرفت")
cnn.Close()
Catch ex As Exception
MsgBox("مشکل در پشتیبان گیری")
End Try
End
End If

این دستور اول میگه میخواید خروج شید یا نه اگه کاربر بله رو بزنه بکاپ میگیره و دیتابیس منو تو درایو E میریزه . هربارم روش آپدیت میکنه .

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

یا حق

a_mohammadi_m
شنبه 07 دی 1392, 13:04 عصر
دستت طلا.فقط من که میام اون رو به فایل خودم کپی کنم ارور زیر رومیده
113568
سیستم رو ریستارت کردم که دیگه اینو نگه اما فایده نداشت!!

سلام
چون دیتابیس توسط sql در حال استفاده است نمیشه کپی کرد
اول باید روی نام دیتابیس در sql کلیک راست کنی و گزینه Dettach رو بزنی بعد میشه کپی کرد
بعد از کپی دوباره باید روی Database کلیک راست کنی و Attach Database رو بزنی و با انتخاب دیتابس مورد نظر دوباره فعالش کنی تا در sql و برنامه ات قابل استفاده باشه
من توصیه می کنم جهت انتقال یک دیتابیس به یک Sql دیگه ازش Backup بگیری و در مقصد Restore کنی مراحلش کمتره و همون کار رو برات میکنه
موفق باشید

a_mohammadi_m
شنبه 07 دی 1392, 13:09 عصر
با سلام
نسخه Express با Enterprise تفاوت چندانی در عملکردهای پایه ای نداره فقط قدرتش کمتره و امکانات اضافی رو نداره
Backup اتوماتیک رو میتونید در قسمت Maintnance Plan در sql تعریف کنید تا در زمانهای مورد نظر شما و در محل مورد نظر شما Backup بگیره
توصیه می کنم عوض پرسیدن سوالهای جزئی و گرفتن جوابهای ناقصی مثل جواب من ، حتما یک کتاب Sql Server رو کامل بخونید خیلی به دردتون میخوره
موفق باشید

behrooz69
شنبه 07 دی 1392, 16:22 عصر
با سلام از آقا بهروز و اموزش مفيدشان
ايا تو sql server express 2008 امكان داره كه پشتيبان فول - و همچنين از تراكنشها بصورت اتومات انجام بشه
ممنون

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

آره تو Sql Server 2008 امکان Backup گیری ( پشتیبان گیری ) از دیتابیس به صورت خودکار یا اتوماتیک ( Auto ) وجود داره .

واسه اینکار روی دیتابیست توی برنامه Sql Server 2008 راست کلیک کن و Task و بعدشم Backup رو بزن . همه چیز واضحه ولی بازم بهت میگم.

1 - اسم دیتابیستو واسه بکاپ انتخاب کن
2- نوعشو که کامل باشه یا نه
3 - کل دیتابیستو میخوای یا فایل ها و دیتاهاشو
4- تعیین میکنی که بعد از چند روز یا چه روزی به صورت خودکار بکاپ بگیره
5 - مسیر زخیره سازی بکاپ دیتابیس رو مشخص میکنید.
114540

6- منوی آپشن های اضافی تنظیمات بکاپتونه.
7- فایلهای قبلی رو نگه میداره و اطلاعات جدید رو توش میریزه ( حجم دیتابیس بعد هر بار بکاپ حتی اطلاعات وارد نکنی 2 برابر میشه )
8 - اطلاعات جدید رو به جای قبلی جایگزین میکنه ( روش صحیح بکاپ اینه )
9 - قسمت اررور های بکاپه که اولیش بعد بکاپ دوباره چک میکنه بکاپو ، سومی هم میگه اررور رو بیخیال شو و ادامه بده بره :لبخند:
114541

سوال رو واضح بپرسید لطفا خواهشا.


یا حق

rasouli_70
شنبه 07 دی 1392, 18:53 عصر
سلام
چجوری میشه جدولمونو ویرایش کنیم؟

behrooz69
شنبه 07 دی 1392, 22:47 عصر
جدول کجاتو داداشه من ؟؟؟ دیتابیس رو میگی ؟؟؟ توی Sql server 2008 روی دیتابیست دابل کلیک کن باز که شد روی Tables کلیک کن و Table مورد نظر رو روش راست کلیک کن و Design رو واسه طراحی ، اضافه یا کم و زیاد کردن فیلد هاش استفاده کن و از Show 200 Row رو واسه دیدن 200 رکورد ثبت شده خودت استفاده کن بعد که اطلاعاتتو دیدی ویرایش یا حذف کن

یا حق

vb341
پنج شنبه 19 دی 1392, 11:50 صبح
توی تکس باکس روی تکس باکس تلفن دابل کلیک کنید و تو رویداد TextChanged اون کد زیر رو واسه فیلتر کردن بر حسب شماره تلفن بنویسید :


TblRegisterBindingSource.Filter = "Tell Like '*" & TxtTell.Text & "*'"



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

behrooz69
پنج شنبه 19 دی 1392, 13:18 عصر
آقا بهروز سلام . د رعبارت لایک که شما برای جستجو گذاشتین اگر مقدار یک فیلد عدد باشه خطا میگیریه . تغییری در دستور باید داد ؟

سلام نه مشکل نداره .
textbox تلفن اصلا خودش عدد هستش .

vb341
جمعه 20 دی 1392, 12:40 عصر
آقا بهروز منظور من اینه که نوع فیلد در دیتابیس عددی باشه نه اینکه شما در شماره تلفن عدد وارد کرده باشین .
چون زمانیکه بادستور شما یک فیلد عددی جستجو میشه از DataType اون اشکال میگیره . لطفا یک بررسی مجدد بفرمائید

behrooz69
جمعه 20 دی 1392, 12:53 عصر
داداشی این تست شدست . اررورش رو بفرست . چون اگه نوع فیلدش رو عدد یا چیز دیگه میذاشتم تو گزارش گیری مشکل ساز بود واسم .

بچه ها کسه دیگه این مشکل رو داره ؟؟؟

vb341
جمعه 20 دی 1392, 14:13 عصر
با سلام
ارور در خصوص نوع دیتا هست . الان پروه دم دستم نیست و در اداره و در محل کارمه .
ولی عرض کردم . نوع دیتای من در بانک از نوع bigint هست و این دستور شما از نوع دیتا اشکال میگیره . چون دستور شما نوع استرینگ رو برمیگردونه

behrooz69
چهارشنبه 09 بهمن 1392, 02:26 صبح
با سلام
ارور در خصوص نوع دیتا هست . الان پروه دم دستم نیست و در اداره و در محل کارمه .
ولی عرض کردم . نوع دیتای من در بانک از نوع bigint هست و این دستور شما از نوع دیتا اشکال میگیره . چون دستور شما نوع استرینگ رو برمیگردونه

دوست من ، پروژه در اختیار شماست . دیتابیس هم که دارید .

من نوع رو Nvarchar گذاشتم فکر کنم بازم نمیدونم . الان دم دست ندارم تو Pc ایمه . ولی یادمه که موقع نوشتن وقتی نوع int یا BigInt رو سرچ میکردم به مشکل میخوردم .

Int که 11 عدد میگیره .
BigInt خوبه . ولی فکر کنم Bigint باشه هااا . بازم چک میکنم .

ولی Nvarchar خوبیش اینه که میشه +98 گذاشت دوست من . واسه این گذاشته بودم . ولی بازم چک میشه

iranaztec
چهارشنبه 09 بهمن 1392, 14:12 عصر
دوستان با سلام من یک سوال فنی دارم
با ویژوال بیسیک دات نت 2008 پروژه ای نوشتم که قسمتی از وظیفه آن تهیه کپی پشتیبان و بازیابی اطلاعات در است
بازیابی توسط یک query در یک شئی command انجام میشه به فرم Restore Database [Dbname] From [BackupFileName] کلی مشکل داشتم که حل شد تا اونجا که دیگه خطا نگرفت اما بعد از restore کردن پیام میده که نمی تونی به این پایگاه داده login کنی (یادآوری می کنم که backup از یک سیستم انجام شده اما restore باید در سیستم دیگری انجام شود (مثلا backup از سیستمی در شمال شهر و restore به سیستم دیگری در جنوب شهر) منظورم اینکه سیستمها هیچ ارتباطی با هم ندارند . بانک هاشون عیناً یکی است فقط نام سیستمها (سرورهاشون) فرق داره

as987498749874
یک شنبه 18 آبان 1393, 00:13 صبح
واقعا دمت گرم...........:تشویق::تشویق:
خیلی عالی بود.من هم سه سوال داشتم اون هم این بود که وقتی فایل دیتابیس طراحی شد و بخوایم در شبکه ازش استفاده کنیم مثلا 5-6 سیستم باید اونو توی یه پوشه شییر شده بذاریم و دایرکتوری کانکشن استرینگ رو هم به ادرس پوشه شییر شده تغییر بدیم.ایا این روش درسته؟ یا روش بهتری برای شبکه هست؟
و دومین سوال: برای انتقال به سیستم مشتری گفتین که engin sql کافیه از نظر حجم فایل نصبیش چقدر هست و ایا حتما برای sql2008 دات نت 4 لازمه چون برناممو با دات نت 2 نوشتم به جهت کاهش حجم فایل ستاپ برا دانلودش؟؟؟؟؟


دوباره ازتون بخاطر وقتتی که گذاشتین تشکر می کنم!!!!!!:قلب::قلب: