توی Sql Server روی پوشه دیتابیس راست کلیک کن و Attach رو بزن /. بعد Add رو بزن بعد برو دیتابیس منو انتخاب کن . و اوکی کن تا Execute شه . اکی ؟؟
توی Sql Server روی پوشه دیتابیس راست کلیک کن و Attach رو بزن /. بعد Add رو بزن بعد برو دیتابیس منو انتخاب کن . و اوکی کن تا Execute شه . اکی ؟؟
بازم این ارور رو داد:
6.png
داداش باید رو اررور بزنی ببینی متنش چیه . ولی احتمالا واسه اینه که 2 تا دیتابیس با 1 اسم و فیلد ها داری . بازم چک کن . ن فردا ادامه پروژه رو میذارم
دستت دردنکنههههه!
سلام دوستان شرمنده چند روزی تاخیر داشتم خوب سرم شلوغ بود .
امروز می خوام سرچ و نمایش اطلاعات رو بگم و کارو تموم کنم .
سرچ و نمایش اطلاعات رو تو مثال های قبل توضیح دادم کداشم هست . پس جدید نیست .
ولی نمایش اطلاعات رو فیلتر بندی کردم .
---------------------------------------------------
1 فرم بسازید اینجوری :
1.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
روی دکمه جستجو دابل کلیک کنید و کد زیر رو بنویسید :
'/// 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
توضیحاتشو قبلا دادم دیگه .
پاکسازی هم که پاک کردن تکس باکس هاست و بازگشتم که بلدین .
2.jpg
بچه ها تا 2 ساعت دیگه فرم اطلاعات و سورس کامل پروژه رو میذارم . فعلا دارم میرم سالن فوتسال
سلام . طبق قولم اومدم .
آموزش آخر فرم نمایش اطلاعات با فیلتر جداگونه .
-----------------------------------------------------------------
فرم زیر رو درست کنید :
1.jpg
یه Data Grid View بذارید و به Table خودتون وصلش کنید . Columns هاشو فارسی کنید . ID رو حذف کنید . واسه شمارش بعدا می تونین از SUM تو Sql استفاده کنید تا تعداد رو بدست بیارین .
دیگه اضافه کردن یا کم کردن Columns دست خودتونه .
2.jpg
توی تکس باکس روی تکس باکس تلفن دابل کلیک کنید و تو رویداد TextChanged اون کد زیر رو واسه فیلتر کردن بر حسب شماره تلفن بنویسید :
TblRegisterBindingSource.Filter = "Tell Like '*" & TxtTell.Text & "*'"
توی تکس باکس روی تکس باکس نام دابل کلیک کنید و تو رویداد TextChanged اون کد زیر رو واسه فیلتر کردن بر حسب نام بنویسید :
TblRegisterBindingSource.Filter = "Fname Like '*" & TxtName.Text & "*'"
توی تکس باکس روی تکس باکس نام خانوادگی دابل کلیک کنید و تو رویداد TextChanged اون کد زیر رو واسه فیلتر کردن بر حسب نام خانوادگی بنویسید :
TblRegisterBindingSource.Filter = "Lname Like '*" & TxtLName.Text & "*'"
با این تیکه کد میاین تیبل خودتون رو از دیتاگرید ویو فیلتر بندی می کنید و اطلاعاتی که شبیه متن توی تکس باکس هست رو فیلتر می کنید و نشون میدید.
3.jpg
اینم سورس کامل پروژه . پایان آموزش این برنامه . تا برنامه بعدی خدا نگهدار . مشکلی بود بپرسین.
TellBook v3.rar
بهروز جان اصلش همینه که چه جوری به تیبل خودمون وصل کنیم؟؟
بفرما دوست من . اینم آموزشش
توی فرمتون 1 DataGridView بذارید و اسمش رو هرچی دوست داشتید بذارید . از اینجا بیاریدش از Toolbox
grid1.jpg
ووقتی گذاشتینش یه پنجره اینجوری میاد :
grid2.jpg
قسمت 1 : اینجا تیبل خودتونو انتخاب می کنین یا اگه نبود اضافه می کنید .
قسمت 2 : ستون هاتونو تغییر میدین
قسمت 3 : اضافه کردن ، حذف کردن و تغییر دادن و مرتب سازی رو حذف یا فعال میکنید .
بعد از زدن کمبو باکس تو قسمت اول به این صفحه میرین
grid3.jpg
قسمت 1 : اینجا تیبل خودتونو انتخاب می کنین
قسمت 2 : می تونین Dataset مورد نظر رو دستی بسازید و اضافه کنید . ویزاردیه بلدین دیگه .
از گزینه Add Project Data source هم می تونن دیتاسورس به پروژتون اضافه کنید .
بعد از اضافه کردن Table یه همچین صفحه بهتون نشون می ده که مهمترین بخششه .
grid4.jpg
تو سمت چپ می بینین که ID انگلیسی نوشته شده و واسه تغییر Header ستون ها باید Edit Columns رو بزنین تا به پنجره سمت راست واستون باز بشه .
از قسمت Select Columns ستون های مورد نظر رو انتخاب میکنید اول ID رو حذف کنید . از دکمه Remove واسه حذف کردن و از دکمه Add واسه اضافه کردن استفاده کنید .
Columns نام که Fname هست رو انتخاب کنین سمت راست با استفاده از Header Text می تونین تغییرش بدید . بنویسید نام . تنظیماتش اختیاریه .
بقیه رو هم همینجوری درست کنین. نام خانوادگی و تلفن و آدرس و جنسیت رو میگمااا . اینجوری
grid5.jpg
-----------------------------------------------------------------------------------------------------------
خوب کارمون تموم شد . حالا میایم 1 سری تنظیمات کوچولو واسه دیتاگریدمون انجام میدیم .
اولیش راست به چپ کردن دیتاگریده . از سمت راست یعنی Properties دیتاگریدمون RightToLeft رو Yes می کنیم . بعد میایم پاین تو قسمت Layout تنظیمات Anachor , AutoSizeColumns ,AutoSizeRow
رو تغییر میدیم . اینارو میگم
Anachor واسه جایگذاری دیتاگریده وقتی فرمم ما بزرگ یا کوچیک میشه . بقیه چیزارو هم می شه با این درست کردا . مثل دکمه ها یا تکس باکس ها که وقتی فرم رو بزرگ یعنی Maximize کردی اجزات بهم نریزه و سر جای خودش قرار بگیره .
اینو هر 4 تا جاشو فعال کنید .
-----------------------------------
AutoSizeColumns رو بذارید روی Fill که وقتی بزرگ شد فرمتون کل دیتار بگیره .
-----------------------------------
AutoSizeRow رو هم به همه سلول ها نسبت بدید .
-----------------------------------
این حالت نرمال فرم :
اینم حالت بزرگ شده فرم :
اوکیه ؟؟؟ کار با Properties سلیفه ایه و مربوط به کارتون و پروژتون . یا حق
آقا سجاد حله ؟؟
نه داداش من خنگ تر از این حرفا هستم.من میگم چه جوری باید اون فایل Mdf رو وارد برنامه کنیم.نمایشش تو گرید ویو زیاد کار سختی نیست
ممنونم داداش
این سوالت :
بهروز جان اصلش همینه که چه جوری به تیبل خودمون وصل کنیم؟؟
یعنی واقعا دستم بهت برسه اینجوریت میکنم
این میشه تیبل وصل کردن . اون سوالی که الان شما پرسیدی یعنی این :
من میگم چه جوری باید اون فایل Mdf رو وارد برنامه کنیم.
این یعنی اضافه کردن فایل دیتابیس به برنامه .
داداشی نیاز نیست دیتابیس رو به برنامه من اضافه کنی . فقط شما اونو تو sql server 2008 خودت که رو سیستمت نصبه Attach کن دادا .
یا علی
حالا خودتو نزن من وقتی اون رو Attch کنم خود به خود وارد وی بی میشه؟؟
بعدشم این ارورمن رو کشته:
سلام به همه عزیزان علی الخصوص آقا بهروز گل
آقا دمت گرم واقعا به همچین تاپیکی احتیاج داشتیم خیلی حال کردم
چند تا چیز دیگه هم به ذهنم رسیده که ایشالا سر وقت مزاحمتون میشم
خدا قوت
قربونت دادا تا جایی که بتونم کمک میکنم .
پس من رو چرا کمک نمی کنه کسی؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟!!!!!
با این ارور چه کار کنم؟؟هیچ اطلاعات بیشتری هم نداره فقط همین ارور رومیده:
داداش دستت درد نکنه اون مشکلم حل شد ولی این ارور رو هر کار میکنم در حین Add کردن دیتابیس میده:
دیتابیس خودمو حذف کردم بجاش مال تو رو Attach کردم بازم همین ارور رو میده.
توروخدا کمک کن!!!!!!!! من با وی بی 2008 کار میکنم
داداش یه شب بهت خبر میدم که با team viewer بیام تو سیستمت. این اروور هم میگه نسخه دیتابیس من از sql server شما جدیدتره . و میگه یه دیتبیس با همین نام تو مسیری ک تو عکس هست وجود داره ک داره استفاده میشه. داش پس درک برنامه نویسی کو؟؟؟ مهم نیست حتما دیتابیس منو بذاری تو پروژت که . خودت بساز 2 تا تیبل با 8 تا فیلد دیگه . اطلاعاتتتم خودت وارد کن. تعریف رشته conn هم تو setting برنامه رو عوض کن و ادرس دیتابیس جدید رو بده . یه دیتابیس رو سیستم خودت بساز مثلا TellSajad
یا علی
داداش ممنون که جواب میدی.من اول همین کار رو کرده بودم و خودم تیبل رو ساختم اما اون موقع باز می گفت نسخه Sql Server همخونی نداره.فکرکنم میگفت پایین تره.
چکارکنم؟؟؟
مگه ورژن Sql server تو چنده داداشی ؟؟؟ Microsoft Sql Server 2008 r2 رو نصب کن
همین ورژن دقیقا نصبه با ویژوال استودیو 2008.توروخدا یه راه حلی بهم بده
داداشی Sql server 2008 با vb.net 2008 هم خونی نداره به جان مادرم . تورو جون من عوضش کن ویژوال استودیو دات نت 2010 یا 2013 رو نصب کن و با اون کار کن. اوکی می شه .
سلام آقا بهروز ممنون از وقتی که میذاری
من موقع اضافه کردن تیبل به مشکل خوردم که عکس پیغام را برات میذارم نمیدونم بابت چیه
sql server 2008 && vs2013
در ضمن یه مورد دیگه تو فرم ادیت با زدن شماره تلفن و زدن دکمه جستجو اطلاعات اون فراخونی میشه ولی اگه ما جنسیت جدید را وارد نکنیم جای خالی جایگزین جنسیت قبلی میشه و این یعنی که باید جنسیت تو قسمت جدیدش نوشته بشه حتی اگه تکراری باشه اینم اگه درستش کنید خوب میشه
ممنون
داداش بهروز گلم با راهنمایی هاتون مشکلات رفع شد به جز یه ارور:
Error1.png
تو رو خدا جواب بده
مشکل من با پاک کردن vs2013 و نصب vs2012 حل شد ممنون از دوستان
من 2012 رو دارم ولی این ارور رو میده:
Error1.png
با تشکر از تمام بچه ها به خصوص آقا بهروز گل مشکلم حل شد.
حالا یه چند تا سوال از استاد بهروز دارم:
1-اگه یادتون باشه گفته شد:در جایی که میخوایم به برنامه آدرس دیتابیس رو بدیم اگر دیتابیس در محل مورد نظر خودمون ذخیره شده باشه باید از کد زیر استفاده کنیم
Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|\MyDB\TellDB.mdf;Integrated Security=True;User Instance=True
حالا سوال من اینه که آیا باید این آدرس رو هم مثل وقتی که Local هست در Setting پروژه کپی کرد؟؟
وسوال دومم اینه که در این کد گفته شده:SQL Express.آیا اگه از نسخه های دیگه استفاده شده باشه باید به جای این کلمه چی گذاشت؟؟
ممنونم
دوست من Baraii ورژن vb شما چنده ؟؟؟ ورژن sql server شما چنده ؟؟ این 2 تا فک کنم با هم همخونی ندارن چون به ورژنش گیر داده . یا sql server 2008 رو بد نصب کردی دوست من
سوال اولت آقا سجاد : من توی توضیحات گفتم که واسه چی به Setting پروژه مسیر دیتابیسو معرفی میکنیم . چون دیگه نیاز نباشه هربار تو برنامه بیایم هی کد بالا رو بنویسیم . فقط بنویسیم My.setting.con همین .
سوال دومت :لوکال رو هم تو پست های دوم به بعد توضیح دادم که چرا لوکال استفاده کنیم و چرا متغییر . لوکال تو سیستم خودته و اگه بخوای برنامه رو به کسی بدی باید 100 % به طرف دیتابیسی که تو سیستم خودت ( لوکال ) ساختی رو بدی و اونم دیتابیس رو تو sql server 2008 خودش Attach کنه.
ولی روش متغییر اینجوری نیست و دلیل استفاده کردن از کلمه sqlexpress هم اینه که وقتی دیتابیس رو متغییر تعریف می کنیم و همراه پروژه میدیمش اگه رو سیستم sql server 2008 نصب نبود فقط با نصب موتور Engine خود Sql Express 2008 برناممون اجرا شه .
این موتور تو سایتا و تو خودت پک دی وی دی sql server 2008 یا Visual Studio 2010 هستش دوست من.
امیدوارم بدردت خورده باشه . یا حق
سلام
از آموزش خوبتون تشکر می کنم
خیلی عالی و واضح توضیح دادید
یه سوال : وقتی کدهای cmd.dispose() , con.dispose() را می نویسم اولین بار که اطلاعات رو ثبت می کنم همه چیز درست پیش می ره و اطلاعاتم ثبت می شه و تکس باکسها خالی می شه ولی برای نفر بعد که اطلاعات رو وارد می کنم و ثبت رو می زنم در قسمت connection.open(قسمتی که بانک اطلاعاتی رو باز می کنم ) ارور زیر را می دهد و وقتی این دو خط را پاک می کنم مشکل حل می شود .
the connectionstring property has not been initialized
اگر این دو خط را ننویسم و خالی نکنم مشکلی ایجاد می شود ؟
استاد من یه مشکل خیط دارم:
این دیتابیس به خوبی تو سیستم خودم کار میکنه.البته سیستمم 32 بیتی هست.اما وقتی تو یه سیستم 64 بیتی با همون ویندوز میخوام اجراش کنم ارور زیر رو میده:
1.png
باید بیای با دستور چک کردن باز بودن و بسته بودن دیتابیس اینکارو انجام بدی که بعد هر بار ارسال و دریافت اطلاعات کانکشن دیتابیس رو ببنده و حالا واسه بار دوم بیاد اگه باز کانکشن همچنان باز بود ببنده اونو بعد دستورات اجرا بشه و اگه باز نبودم بازش کنه .اینم نمونه کدش که تو پست 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()
داداشی ورژنMicrosoft .net frameworket b با سیستم ی که 64 بیتیه نمی خونه . تو برنامه هات دات نت فریم ورک 4.5 به بالا رو نصب داری و رو سیستمی که برنامه رو اجرا کردی و Sql توش داری نسخه پایین ترشو . تست کن نصبش کن فریم وورکو . اگه نشد تو Vb قسمت Any cpu رو انتخاب کن هم 86 و هم 64 بیتی.
یا حق
سلام
ممنون بابت آموزش خوبتون
من تو پروژم فیلد نام و نام خانوادگی رو می زنم و جستجو می کنم ،
مثلا نام و نام خانوادگی را مریم عدل می زنم برای اولین بار درست نشون می ده ولی اگه نام رو به فاطمه تغییر بدم ولی با همون فامیل (عدل) و دوباره دکمه جستجو رو بزنم ارور زیر را می دهد .
The variable name '@first_name' has already been declared. Variable names must be unique within a query batch or stored procedure.
یه مشکل دیگه
وقتی برای اولین بار نام و نام خانوادگی رو جستجو می کنم و نشون می ده اطلاعات رو ، دکمه حذف رو که می زنم پیغام "پیدا نشد " رو نمایش می ده چرا؟
یعنی اصلا تشخیص نمی ده که این اطلاعات تو دیتا بیس هست تا 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 AsInteger
count = objcommand.ExecuteNonQuery()
objconnection.Close()
If count > 0 Then
MessageBox.Show("اطلاعات مورد نظر حذف شد")
Else
MessageBox.Show("اطلاعات مورد نظر پیدا نشد")
EndIf
EndIf
txtfirst_name.Clear()
txtlast_name.Clear()
txtfather_name.Clear()
txtno_shenasnameh.Clear()
txtdate_tavalod.Clear()
txtmahale_tavalod.Clear()
txtphone.Clear()
txtaddress.Clear()
سلام . نه دستور If من مشکل ساز نمی کنه و میاد میگه اگه تکس باکس من مقدارش و طولش بزرگتر از 0 بود عملیات رو انجام به .
بعد دوست من شما میای 1 بار دستورات رو می خونی درست . بعدش میای همه txt هاتو clear میکنی و پاک میکنی و دکمه حذف رو میزنی به نظرت برنامه چی رو پیدا کنه ؟؟؟
من برنامه رو گذاشتم واسه آموزش شما می تونی برنامه رو بهینه کنی و دوباره بفرسی . هدف من آموزش کار با عملیات اصلی Sql بود.
آقا بهروز اگه من بخوام یه دیتا گرید ویو هم بزارم و اطلاعات بعد از ثبت شدن تو دیتا گرید ویو هم نشون داده بشه چیکار باید بکنم؟
ممنون
سلام دوست من.من هم اول با این موضوع مشکل داشتم.اما الان ویدئوی زیر رو واست ساختم دان کن قشنگ متوجه میشی.فقط چون حجمش 3 مگابایت هست نتونستم تو سایت آپلودش کنم .
لینک دانلود: http://www.uplooder.net/cgi-bin/dl.c...2007bd66a09667
موفق باشید
یه سوال دیگه
چطوری میتونم تو فرم ویرایش به جای تکست باکس ، کمبو باکس بزارم و از لیست کشویی شماره تلفن را انتخاب کنم و با انتخاب شماره تلفن باقی اطلاعات سر جاهای خودش بشینه ؟
ممنون
آخرین ویرایش به وسیله barrai : سه شنبه 03 دی 1392 در 14:43 عصر