رفتن به مطلب

گوشه هایی از سی شارپ


AQT789

ارسال های توصیه شده

خب خیلی روی چیزای ابتدایی و ساده مانور نمیدیم چون دیگه اکثرا بلدن :دی

 

قبل از هر چیزی

 

لطفا اگه نظر پیشنهاد انتقادی دارین به صورت خصوصی داخل پروفایل اعلام کنید رسیدگی خواهد شد چون تاپیک الکی بهم نزیره بهتره

اگر مسائل بهتر یا مهمتری مد نظرتون هست که لازم میدونید باید روشون کار بشه گوشزد کنید سعی میکنم در کوتاه ترین مدت زمانی آموزشش رو بذارم

 

خب اول از همه باید بدونیم برای کانکت شدن به Sql Server به چیا احتیاج داریم ؟

همونطور که میدونین برای همه این کارها مایکروسافت کلاس از پیش آماده ای رو برای ما قرار داده اولین کلاسی که پیش رومونه چیزی نیست جز SqlConnection

حالا به طریقه استفاده از این کلاس میپردازیم

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

برای کانکت شدن به دیتابیس مورد نظر ما ابتدا یه استرینگ احتیاج داریم که مشخص کنه به کجا میخوایم کانکت شیم

که بهش میگن ConnectionString

 

اصلا حالا مگه بلدیم دیتابیس بسازیم که بخوایم بهش کانکت شیم ؟

 

---- ساخت یک دیتابیس ----

sql server چند نسخه داره که یکیش Express که روی Visual هست و میشه ازش استفاده کرد

خب بریم سراغ ساختن دیتابیس ، راه های ساختن دیتابیس از طرق مختلفی هست

حالا فعلا یکیشو میگیم توی قسمت solution explorer روی نام پروژتون کلیک راست کنید و add و New Item رو بزنید

(شاید بگین Solution Explorer ندارم من که :دی از منوی view میتونید بیاریدش)

از آیتم هایی که ویژوال نشونتون میده serivce-based database رو انتخاب کنید نامی براش بذارید و اکی کنید

حالا یه پنجره باز میشه که برای کانفیک اولیه Data source میتونی کنسلش کنید و ببیندینش مشکلی نداره بعدا میپردازیم بهش اگه لازم شد

حالا میتونید توی Solution explorer ببینیدش روش کلیک راست کنید و open رو بزنید :دی

میبینید که توی server explorer نمایش داده میشه

نداریدش اونجا ؟ :دی از view بیاریدش

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

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

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

توی solution explorer وقتی روی دیتابیس یا هر چیز دیگه ای کلیک میکنیم توی بخش properties اطلاعاتی در مورد شی یا فایل مورد نظر میاد

Properties نیستش ؟ View!!!

یکی ازون مقدارها که نشون میده connection stringه که علی الحساب کپیش کنید باهاش کار داریم

حالا میریم سراغ نحوه ساختن یک کانکشن به کد زیر نگاه کنید

 

connectionString = "Stringi Ke Copy kardim" ;

SqlConnection connection = new SqlConnection(connectionString);//123

یه شی از کلاس SqlConnection با اسم connection ساخته شده و استرینکی به اسم کانکشن استرینگ به تابع سازندش فرستاده شده J

خب باید بدونید بعد از ساختن کانکشن برای استفاده ازش ابتدا باید بازش کنید :دی

که اینکارو میتونید با connection.open() انجام بدین

یکی دیگه از کلاسایی که احتیاج دارین SqlCommand هستش

که با استفاده از توابعی که در اختیارمون میذاره میتونیم کامند یا کوئری مورد نظرمون رو اجرا کنیم

به خط زیر نگاه کنید

 

string queryString = "SELECT username, password FROM users";//123

SqlCommand command = new SqlCommand(queryString, connection);//123

 

 

یک شی از کلاس SqlCommand ساخته و شده و دو تا آرگومان به تابع سازنده آن فرستاده شده که یکش کوئری مورد نظر و دیگری

شی ساخته شده از کلاس SqlConnectionمونه

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

از SqlServerه

به خطهای زیر نگاه کنید

 

 

 

SqlDataReader reader = command.ExecuteReader();//123

while (reader.Read())//123

}

Console.WriteLine(String.Format("{0}, {1}",reader[0], reader[1]));//123

{

 

چیزی که میبینید یه شی ساخته شده از کلاس SqlDataReader هستش به اسم Reder و برابر قرار داده شده با یکی از توابع یا

متودهای شی command که از کلاس SqlCommand ساخته شده

اسم تابع رو هم که میبینید ٍExcuteReader از اسمش معلومه دیگه چیکار میکنه دیگه نه ؟ :دی کوئری که داشتیم رو اجرا میکنه

و نتایج بازگشتی از sqlServer رو داخل reader میریزه

برای خوندن دیتا از شی ساخته شده هم از تابع Read توی شی reader استفاده کرده

  • Like 10
لینک به دیدگاه

کلا میشه 4 عمل رو روی داده های ذخیره شده در SqlServer انجام داد

1)Insert

2) Delete

3)Update

4)Select

توی Server explorer

DataConnectos رو میبینید که اگه این منوی درختی رو باز کنید میتونید دیتابیسی که ساختید رو ببینید اگه نمیدیدید :دی اشکال نداره توی solution explorer میتونید روی دیتابیس موجود در پروژتون کلیک راست کنید و open رو بزنید

برای استفاده از دیتابیس باید ابتدا آن را طراحی کنیم با توجه به نیازهامون فرض کنید میخوایم دیتابیسی داشته باشیم که مقدارهای یوزرنیم و پسورد رو نگه داری کنه

 

برای اینکار ابتدا روی کانکشن مورد نظرمون درون دیتابیس دابل کلیک میکنم از زیر درخت های باز شده این منو روی tables کلیک راست کرده و Add New table رو میزنیم

توی پنجره باز شده Column Name و ِData Type و Allow Nulls رو میبینید

 

اولین ردیف یا سطر رو مقدار Column Name رو برابر با ID قرار بدین ِو ِData Typeش رو برابر با INT

 

زمانی که روی هر سطری کلیک میکنید میتونید مشخصاتی رو برای هر سطر وارد کنید یکی identity specification هستش روش دابل کلیک کنید مقدار is identityش رو برابر با yes قرار بدید

بعد اینکه روی همین سطر اول کلیک راست کنید و Set primary key رو بزنید

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

 

یا یه سطر دیگه بسازید به اسم username و نوع varchar

و یه سطر دیگه هم به اسم password و نوع varchar

 

بعد از اینکار ها روی پنجره مورد نظر کلیک راست میکنیم و Save table1 رو میزنیم که ازمون میخواد یک نام براش انتخاب کنیم ، نام رو بذارید users و اکی کنید

خب ما حالا تیبل مورد نظرمون برای ذخیره داده هامون رو ساختیم

میریم سراغ دستور insert

به خط زیر نگاه کنید

فکر میکنید چیکار میکنه ؟

INSERT INTO users (username, password) VALUES (masoud, 123456)

دیگه تابلوئه چیکار میکنه دیگه :دی داخل تیبل user سطری رو با مقدار یوزر نیم masoud و پسورد 123456وارد میکنه

DELETE FROM users WHERE id="1"

این دستورم دیگه تابلوئه دیگه ، میگه از تیبل یوزرز جایی که id برابر با 1 هست رو delete کن

 

اینجا لازمه بگم ما مقدار id رو برای این primary key کردیم که یه مقدار اصلی برای هر سطر باشه خصوصیت primary key اینه که نمیتونه تکراری باشه و داشتن یه کلید اختصاصی برای هر کاربر میتونه در مدیریت و جستجوی بهتر کمک کنه

 

در ضمن identity specification رو فعال کردیم برای اینکه لازم نباشه ما هر دفعه بهش مقدار بدیم و لازم باشه بدونیم چند تا یوزر درون دیتابیس وجود داره که این عدد رو وارد کنیم ، دیگه SqlServer خودش حواسش هست

 

و دستور update که به صورت زیر هستش

UPDATE Persons SET username='masoud', password='123' WHERE id='1'

توضیح این دستور هم میشه اینکه جایی که Id برابر با 1 هست رو با username با مقدار masoud و password با مقدار 123 آپدیت کن

دیگه Select هم که اسمش روشه این یدونرم خودتون در موردش تحقیق کنید

 

ببخشید دیگه بیشتر ازین نمیشه به اینا پرداخت چون خودشون وسعت زیادی دارند میتونید نمونه هایی از دستورا sql رو در سایت زیر ببینید


[url]http://www.w3schools.com/sql[/url]
برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

شاید در برخی جاها به این مسئله بر بخورین که چرا از بلاک using استفاده شده ؟

خب دلیلش اینه برای استفاده از Sqlconnection باید آن را باز کنید با دستور open

وقتی از بلاک using استفاده مکنید لازم نیست Sqlconnection رو در انتها close کنید J چون بعد از خارج شدن از بلاک به صورت اتوماتیک close خواهد شده

در مورد Datareader هم همینجور

اما در نظر داشته باشید اگه از بلاک using استفاده نکنید حتما آنهارو Close کنید

 

در لینک های بالا مثال های کامل و بی نقصی هستند اما اگه میخواین بگید که نمونه کد هم بذاریم

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

اینو بونین یه برنامه نویس قبل از هر چیز باید سرچ کردن یاد بگیره :دی سرچ کنید

لطفا اگه نظر پیشنهاد انتقادی دارین به صورت خصوصی داخل پروفایل اعلام کنید رسیدگی خواهد شده چون تاپیک الکی بهم نزیره بهتره

اگر مسائل بهتر یا مهمتری مد نظرتون هست که لازم میدونید باید روشون کار بشه گوشزد کنید سعی میکنم در کوتاه ترین مدت زمانی آموزشش رو بذارم

 

 

 

 

 

 

  • Like 10
لینک به دیدگاه

این ویرایشگر سایت ماررو سرویس کرد از بس متن کپی شده از ورد رو چپ و راست کردم تا اینجوری دربیاد :دی مسئولین رسیدگی کنن دیگه :ws3:

 

اسپم هم نکنید :دی این پست رزور میشه برای اینکه شاید در آینده لازم باشه لینک پست های مهم توش درج بشه :) tnx

  • Like 7
لینک به دیدگاه
  • 2 هفته بعد...

مسعود گفته اسپم نکنید.اما مجبور شدم دیگهTAEL_SmileyCenter_Misc%20%28305%29.gif

 

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

 

نمیشه که فقط واسه 1 نفر آموزش گذاشت.نظرات و پیشنهاداتتونو هم بدین.

 

1 کم همکاری داشته باشید خبw000.gif

  • Like 7
لینک به دیدگاه

ادامه میدیم به امید خدا ، یکمی صبر کنید :w16:

اگه طرز نوشتن مشکل داره یا گیرا نیست بگید من مشکلی ندارم ، دوباره مینویسم اگه بتونم ، یا عکس میذارم ، یا حتی اگه شده فیلم آموزشی تهیه میکنیم :ws3: الان مشکل ما اینجاست اصن نمیتونیم بفهمیم یه آموزش چقد مفید بوده ؟!!!

خواهشا نظرات و انتقادات تو پیام خصوصی ، اگر هم بخش خاصی از آموزش مد نظرتونه بگید من میذارم

 

یه سری چیزای اولیه که لازمه رو ابتدا باید گفت

شروع میکنیم به نوشتن یه سیستم مدیریت کتابخانه

البته اگه وقت بود شاید تحت وبش رو هم کار کردیم :icon_gol:

 

بخش بعدی کار با فایل هاست :w16:

  • Like 7
لینک به دیدگاه

خب میریم سراغ کار با فایل ، البته تکست فایل ، یه قسمت دیگه هم کار با فایلهای باینری هستش که فعلا لازم نمیشه

 

میخوام توضیح رو خط به خط پیش بریم چون اگه حتی توی مسادل دیگه هم مشکلی باشه ممکنه برطرف شه

 

کلاس های لازم برای اینکار

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

 

هر دوی این کلاسها به ارث برده شده از کلاس TexWriter هستند که میتونید به رفرنس زیر مراجعه کنید

 

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

 

ارث بری چیه ؟ باید به یه کتاب مراجعه کنید و بخش کلاس ها و ارث بری رو بخونید

 

این دوتا کلاس تایع های زیادی برای کار با فایل دارن ما فعلا از هر کدوم یکیشون رو توضیح میدیم و در آخر هم من نمونه پروژه ای براتون میذارم که مستقیما از سایت مایکروسافت برداشته شده

 

اول از همه به عکس زیر نگاه کنید

 

attachment.php?attachmentid=10046&stc=1&d=1345954550

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

 

توی خط اول کد به این بر میخوریم DirectoryInfo[] cDirs = new DirectoryInfo(@"c:\").GetDirectories();

 

همونطور که همتون میدونید !!! یا اگه نمیدونید باید بگم که یه آرایه از کلاس DirectoryInfo به اسم cDirs ساخته و اون رو مقدار دهی کرده با ؟ با چی ؟ :دی

 

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

 

اینجا آمده یه شی از کلاس DirectoryInfo ساخته و مقدار فرستاده به تایع سازندش هم c:\ هستش و همونجا هم بلافاصله تابع GetDirectories رو صدا زده

 

ازونجا که زبان های سطح بالا روز به روز به زبان انسان ها نزدیک تر میشند اگه یه کمی زبان بلد باشیم و یکمی هم برنامه نویسی کرده باشیم میفهمیم که خط بالا داره داد میزنه من دارم خصوصیات دایرکتوری های موجود در مسیر c:\ رو میریزم توی یه آرایه از نوع کلاس DirectoryInfo

 

میرسیم به خط به بعد تاحالاش هیچ ربطی به کار کردن با فایل نداشت :دی

 

اما حالا به این خط میرسیم

 

using (StreamWriter sw = new StreamWriter("CDriveDirs.txt"))

 

اما حالا خط بالا ؟ طریقه شی ساختن از یه کلاس رو بلدید دیگه نه ؟ اگرم بلد نیستید چند خط بالاتر رو نگاه کنید ما که نمیتونیم

یه چیز رو هزار با توضیح بدیم

 

دلیل استفاده از بلاک using هم در پست های قبلی گفته شده ، میتونید برید بخونید :w16:

 

در قسمت بعدی میرسیم یه Foreach خب چیه ؟

 

فورایچ برای پیمودن یه سری آرایه یا کالکشن ها استفاده میشه !

 

مثلا نگاه کنید شما برای اینگه بیاید اعضای یه آرایه رو چاپ کنید ، چکار میکنید ؟

 

مسلما یک حلقه فور تشکیل میدادید و به تعداد خانه های آرایه آنرا تکرار میکردید و اعضای آرایه رو چاپ میکردید

 

اینجا اگر از foreach استفاده کنیم احتیاجی به دونستن تعداد خانه های آرایه نیست و خیلی راحت ما میتونیم عملیاتمون رو برای

تک تک خونه های آرایمون انجام بدیم :) البته خصوصیات دیگه رو هم خودتون بهش توجه کنید :دی

 

میرسیم به دستورات داخل بلاک Foreach

 

خب چی میبینید ؟ sw.WirteLine()!!!

 

WriteLine یکی از توابع داخل کلاس StreamWrite هستش که کارش چاپ کردن چیزیه که ما بهش به عنوان ورودی میدیم در یک خط جدیده

 

داخل پرانتز رو میبینید ؟ نوشته dir.name

 

داخل پرانتز جلوی Foreach بر میخوریم

DirectoryInfo dir in cDirs

 

این یعنی چی ؟ یادتونه که نوع آرایه cDirs چی بود ؟ آره DirectoryInfo بود

 

در کل ابن Foreach میگه

 

برای هر کلاس DirectoryInfo که در آرایه cDirs هست کارای داخل بلاک رو انجام بده، بلاک هم که میدونید جای که{ باز میشه و } بسته

میشه داخلش میشه یه بلاک :دی

 

یکی از اعضای کلاس DrectoryInfo داده ایه به اسم dirname که نام دایرتکوری در اون ذخیره میشه

 

حالا فک کنم فهمیدید کار کل برنامه چیه نه ؟

 

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

 

میریم سراغ خط های بعدی !!!

 

خیلیاشو بازم بلدین !!! میریم سراغ حلقه ی While

 

شرط داخل حلقه رو نگاه کنید (line = sr.ReadLine()) != null

 

sr شی ای هست که از کلاس streamreader در خط بالاترش ساخته شده ، readLine هم یکی از تابع های اون کلاس !!! که هر دفعه یکی

خط از فایل مارو برمیگردونه

 

در واقع اینجانابرابر با null قرار داده شده چون اگه به آخر فایل برسیم تابع ReadLine مقدار برگشتی برابر با null داره

 

بنابراین اینجوری متوجه میشیم به آخذ فایل رسیدیم و حلقه خاتمه پیدا میکنه!!!

 

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

در ضمن مطمئن باشید اگه استقبال نشه ادامه داده نمیشه :دی اینم یاد بگیرین معنیه استقبال تشکر نیست !!! اینه که یکی اینکارارو انجام بده به مشکل بربخوره سوالی براش پیش بیاد بله :w16:

 

 

پیروز باشید

csharpFile1.png

  • Like 7
لینک به دیدگاه
میشه کنسول نویسی نباشه؟!5c6ipag2mnshmsf5ju3z.gif

 

نه نمیشه :ws3:

کسی نگفت قراره همرو کنسول بنویسیم که

کدها توی کنسول نویسی پست سر هم و منطم هستند ، بنابراین توی درک برنامه نویسی و مراحل انجام یک برنامه و فهم الگوریتم اون کمک میکنن

  • Like 1
لینک به دیدگاه

سلام

خیلی عالیه.

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

اخه مثلامن نوعی که تازه دارم سی شارپ روشروع میکنم چطوری متوجه بشم؟!

یک شروع کلی رو بگید..مثلا برای انجام هرپروژه ، چنین کاری انجام میشه(یا حداقل یک فیلم اموزشی اولیه برای چگونگی ایجاد یک پروژه ) بذارید..

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

یا اگه اصطلاحات اولیه اش رو ،یک پی دی اف کنید یا یک پی دی اف معرفی کنید تا دوستان مطالعه کنند و بعد به سراغ کدنویسی های اولیه بیایم بهترنیست؟

این نظرمن بود

باز هرطوردوستان راحتند درضمن زین پس میام...

  • Like 3
لینک به دیدگاه
سلام

خیلی عالیه.

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

اخه مثلامن نوعی که تازه دارم سی شارپ روشروع میکنم چطوری متوجه بشم؟!

یک شروع کلی رو بگید..مثلا برای انجام هرپروژه ، چنین کاری انجام میشه(یا حداقل یک فیلم اموزشی اولیه برای چگونگی ایجاد یک پروژه ) بذارید..

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

یا اگه اصطلاحات اولیه اش رو ،یک پی دی اف کنید یا یک پی دی اف معرفی کنید تا دوستان مطالعه کنند و بعد به سراغ کدنویسی های اولیه بیایم بهترنیست؟

این نظرمن بود

باز هرطوردوستان راحتند درضمن زین پس میام...

 

منم موافقم:ws3:

 

من قبلا کار کردم.اما خب بعضی ها اول راهند.:w16:

مسعود ببخشید اسپم شدicon_pf (34).gif1 جا هم در نظر بگیر(1تاپیک)واسه همین پیشنهاد و انتقادات و سوالاتمون دیگه)

بذارش تو امضات که راحت پیدا بشه:whistle:

آموزش با تصویر باشه بهتره.

و تمرین.

تمرین کوچک بده اول بهمون.

1دفه گفتی کتابخونه؟:banel_smiley_4:w58.gif

مثلا insert رو که درس دادی بیا واسش تمرین بگو.دوسه تا تمرین متفاوت.insert همزمان تو چندتا جدول و ا زی این قبیل.

مثال های کاربردی و خوب

باشه؟:ws3:

 

باز هم مرسی از مسعود که آموزش گذاشت:icon_gol:

  • Like 2
لینک به دیدگاه
نه نمیشه :ws3:

کسی نگفت قراره همرو کنسول بنویسیم که

کدها توی کنسول نویسی پست سر هم و منطم هستند ، بنابراین توی درک برنامه نویسی و مراحل انجام یک برنامه و فهم الگوریتم اون کمک میکنن

 

whistle.gif.کنسول نویسی بدم میادTAEL_SmileyCenter_Misc%20%28305%29.gif

  • Like 1
لینک به دیدگاه
سلام

خیلی عالیه.

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

اخه مثلامن نوعی که تازه دارم سی شارپ روشروع میکنم چطوری متوجه بشم؟!

یک شروع کلی رو بگید..مثلا برای انجام هرپروژه ، چنین کاری انجام میشه(یا حداقل یک فیلم اموزشی اولیه برای چگونگی ایجاد یک پروژه ) بذارید..

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

یا اگه اصطلاحات اولیه اش رو ،یک پی دی اف کنید یا یک پی دی اف معرفی کنید تا دوستان مطالعه کنند و بعد به سراغ کدنویسی های اولیه بیایم بهترنیست؟

این نظرمن بود

باز هرطوردوستان راحتند درضمن زین پس میام...

 

مطالب اولیه بیشتر تکرار شده ، و منابع بیشتری براشون هست

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

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

 

  • Like 2
لینک به دیدگاه
منم موافقم:ws3:

 

من قبلا کار کردم.اما خب بعضی ها اول راهند.:w16:

مسعود ببخشید اسپم شدicon_pf%20%2834%29.gif1 جا هم در نظر بگیر(1تاپیک)واسه همین پیشنهاد و انتقادات و سوالاتمون دیگه)

بذارش تو امضات که راحت پیدا بشه:whistle:

آموزش با تصویر باشه بهتره.

و تمرین.

تمرین کوچک بده اول بهمون.

1دفه گفتی کتابخونه؟:banel_smiley_4:w58.gif

مثلا insert رو که درس دادی بیا واسش تمرین بگو.دوسه تا تمرین متفاوت.insert همزمان تو چندتا جدول و ا زی این قبیل.

مثال های کاربردی و خوب

باشه؟:ws3:

 

باز هم مرسی از مسعود که آموزش گذاشت:icon_gol:

باشه ، گفتم که محل انتقادات پیشنهادات توی پروفایل خودم!!! قرار نیست آدم بیاد انتقاداتشو داد بزنه که!:ws3:

 

دسترسی داشتم همرو پاک میکردم ، بذار یخرده بره جلوتر میگم بپاکنش :w16:

  • Like 1
لینک به دیدگاه
باشه ، گفتم که محل انتقادات پیشنهادات توی پروفایل خودم!!! قرار نیست آدم بیاد انتقاداتشو داد بزنه که!:ws3:

 

دسترسی داشتم همرو پاک میکردم ، بذار یخرده بره جلوتر میگم بپاکنش :w16:

 

داد نزدیم که.یواش گفتیم:ws3:

آخه اینجوری نظر بقیه بچه ها هم هست.تو پروف نمیشهTAEL_SmileyCenter_Misc%20%28305%29.gif

  • Like 2
لینک به دیدگاه
×
×
  • اضافه کردن...