مجموعه سایت های ما
جایی برای یادگیری بیشتر

دانلود رایگان مقاله معرفی اولیه VB.NET

0

یک برنامه کامپیوتری ، از مجموعه ای دستورالعمل که نوع و نحوه انجام یک فعالیت را برای کامپیوتر مشخص می نمایند ، تشکیل می گردد. دستورالعمل های نوشته شده بعنوان نمونه ممکن است به کامپیوتر اعلام نمایند  که تعدادی از اعداد را با یکدیگر جمع  و یا دو عدد را بایکدیگر مقایسه و بر اساس نتیجه  بدست آمده ، اتخاذ تصمیم نماید. دستورالعمل های نوشته شده ، صرفا” برای کامپیوتر قابل فهم و اجراء خواهند بود.کامپیوتر دستورالعمل های نوشته شده را اجراء و ماحصل آن رسیدن به اهدافی خواهد بود که بر اساس آن برنامه طراحی و پیاده سازی  شده  است . دستورالعمل ها  ، می بایست با استفاده از یکی از زبانها ی برنامه نویسی نوشته شده ( کد ینگ ) و در ادامه در اختیار کامپیوتر قرار داده شوند. زبانهای برنامه نویسی متعددی نظیر : فرترن ، بیسیک ، کوبال ، پاسکال، ،C ، جاوا ، ویژوال بیسیک و  … وجود دارد.

 برنامه نویسی کامپیوتر ، مشابه آموزش گره زدن کفش به کودکان  است . برای نیل به هدف فوق ، می بایست تمامی مراحل لازم  بصورت شفاف به کودکان آموزش داده شود . کودکان با دنبال نمودن دستورالعمل های ارائه شده ، قادر به گره زدن کفش خود خواهند بود ( روش انجام این کار برای آنان مشخص شده و بر اساس آن ، امکان نیل به هدف مورد نظر توسط کودکان فراهم می گردد )  . VB.NET ، زبانی است که می توا ن نحوه نیل به یک خواسته را بکمک آن بصورت شفاف ( نظیر آموزش گره زدن کفش به کودکان )  مشخص و کامپیوتر با دنبال نمودن مراحل مشخص شده ، خواسته مورد نظر را محقق نماید. با استفاده از VB.NET ، می توان محصولاتی راایجاد  که زمینه استفاده از آنان  در محیط ویندوز و اینترنت ، وجود خواهد داشت . فراموش نکنیم در زمان فراگیری یک تکنولوژی در ابتدا می بایست شیوه راه رفتن را بیاموزیم  و در ادامه اقدام به دویدن نمود .

VB.NET یکی از زبان های  حمایت شده در دات نت می باشد . با استفاده از زبان فوق علاوه بر اینکه می توان برنامه های مبتنی بر ویندوز را پیاده سازی نمود ، امکان استفاده از آن بعنوان زبان مورد نظر در زمان ایجاد برنامه های مبتنی بر وب که از تکنولوژی ASP.NET استفاده می نمایند ، نیز وجود خواهد داشت . با توجه به اهمیت و جایگاه خاص این زبان  در دات نت ، مجموعه مقالاتی در رابطه با آموزش اصولی این زبان آماده شده که بتدریج بر روی سایت قرار خواهند گرفت . در اولین مقاله از این مجموعه به معرفی اولیه VB.NET خواهیم پرداخت . در ابتدا لازم است با  ویژگی های منحصر بفرد برنامه های مبتنی بر ویندوز در قیاس با برنامه های مبتنی بر DOS ، آشنا شده و پس از مروری مختصر به روند شکل گیری نسخه های متعدد ویژوال بیسیک ، با نحوه نصب آن نیز آشنا شویم .

برنامه نویسی مبتنی بر DOS در مقابل ویندوز
برنامه نویسی مبتنی بر  ویندوز دارای تفاوت های عمده ای نسبت به برنامه نویسی سنتی در محیط DOS است.برنامه های  DOS ،  مسیری دقیق و مشخص  را ازابتدا تا پایان دنبال می نمایند . رویکرد فوق ، باعث بروز محدودیت هائی در رابطه با عملکرد برنامه ها  از یکطرف و تحمیل محدودیت هائی به کاربران در طی نمودن مسیر مشخص شده ، می گردد. از زاویه ای خاص می توان عملکرد  یک برنامه مبتنی بر  DOS را  مشابه قدم زدن در یک راهرو ( سالن )، در نظر گرفت . بمنظور رسیدن به نقطه انتهائی سالن ،  می بایست طول سالن  طی تا به انتهای آن رسید . در این راستا از موانع متعدد موجود در مسیر ، می بایست عبور تا سرانجام به مقصد مورد نظر رسید . در زمان پیمودن مسیر ، صرفا”   امکان بازنمودن درب های خاصی  ، وجود خواهد داشت . ویندوز ، دنیای جدیدی از برنامه نویسی مبتنی بر “رویداد”  را ایجاد نموده است . کلیک نمودن موس ، تغییر اندازه پنجره ، تغییر محتویات یک  Textbox ، نمونه هائی از یک “رویداد” می باشند. کدهای  نوشته شده ، نحوه برخورد با یک رویداد را مشخص می نماید.  برای رسیدن به انتهای یک سالن کافی است بر روی “انتهای سالن ” ، کلیک نمود و دیگر ضرورتی به پیمودن تمامی مسیر تا رسیدن به انتهای سالن نخواهد بود . درصورتیکه به انتهای سالن رسیده باشیم و متوجه گردیم که این مکان ، محلی نیست که انتظار آن را داشته ایم ، بسادگی می توان مقصد جدیدی را برای خود انتخاب ، بدون اینکه ضرورتی به برگشت در نقطه آغازین مسیر وجود داشته باشد. برنامه نوشته شده عکس العمل های لازم در ارتباط با حرکت شما  را بهمراه عملیات مربوطه بمنظور تکمیل فعالیت ها ی مورد نظر انجام خواهد داد .  با استفاده از VB.NET ، می توان کدهای لازم بمنظور ارائه عکس العمل لازم در زمان تحقق یک رویداد را نوشت .در این راستا ، برنامه نویسان می توانند  کدهای لازم  در رابطه با رویدادهائی که امکان  تحقق آنها وجود دارد را نوشته تا در زمان بروز رویداد مورد نظر ، عکس العمل لازم از طرف برنامه صورت پذیرد.در این زمینه می توان از نوشتن کدهای دیگر بمنظور برخورد با رویدادهای غیرضروری ، صرفنظر کرد. مثلا” ویندوز قادر به تشخیص رویداد”کلیک ” از “کلیک مضاعف ” است . این بدان معنی است که اگر می خواهید برنامه مورد نظر شما ،عکس العمل لازم در ارتباط با رویداد  “کلیک” را داشته باشد ، می بایست صرفا” کد مربوط به رویداد ” کلیک”،  نوشته گردد و الزامی به نوشتن کدهای  لازم بمنظور برخورد با رویداد  “کلیک مضاعف” ، وجود نخواهد داشت . در دنیای برنامه نویسی DOS ، کاربر عکس العمل لازم را نسبت به برنامه انجام می دهد در صورتیکه در ویندوز ، برنامه ها عکس العمل لازم را با توجه به رفتار کاربران ، انجام خواهند داد .

یکی دیگر از مزایای مهم  برنامه های  ویندوز ، عدم وابستگی برنامه ها به یک سخت افزار خاص است . ویندوز تمهیدات لازم در خصوص ارتباط با سخت افزار را پیش بینی و برنامه نویسان نیاز به آگاهی از نحوه عملکرد یک دستگاه سخت افزاری خاص بمنظور استفاده از آن ، نخواهند داشت . مثلا” برنامه نویسان ضرورتی به آگاهی از  نحوه عملکرد  هر نوع چاپگر لیزری، بمنظور ایجاد خروجی مورد نظر خود در برنامه ها ، نخواهند داشت. ویندوز، امکانات لازم در این خصوص را از طریق ارائه روتین های عمومی که با درایورهای مورد نظر مرتبط می گردند ، فراهم می نماید. شاید همین موضوع دلیل موفقیت ویندوز باشد .

روتین های عمومی اصطلاحا” Windows (API ) Application Programming Interface نامیده می شوند .

 تاریخچه ویژوال بیسیک
قبل از معرفی ویژوال بیسیک در سال ۱۹۹۱ ، پیاده کنندگان نرم افزار مجبور به تسلط و مهارت در زمینه  استفاده از   ++C   بهمراه  موارد پیچیده ای در این خصوص  بودند . بدین  ترتیب ، صرفا” افراد خاص آموزش دیده،  قادر به خلق نرم افزارهای قدرتمند  بمنظور اجراء در محیط ویندوز بودند. ویژوال بیسیک ، محدودیت فوق را تغییر و می توان این ادعا را داشت که امروزه خطوط زیادی از برنامه های نوشته شده  با استفاده از ویژوال بیسیک کد شده است . ویژوال بیسیک ، ظاهر برنامه نویسی تحت ویندوز را با حذف عملیات اضافی برای نوشتن کدهای لازم جهت طراحی بخش رابط کاربر (UI) ، تغییر داده است . در این راستا ،  زمانیکه بخش رابط کاربر ، ترسیم می گردد ، برنامه نویس می تواند کدهای لازم بمنظور انجام عکس العمل مناسب در رابطه با رویداد ها را به آن اضافه نماید . زمانیکه ماکروسافت نسخه شماره سه ویژوال بیسیک را ارائه نمود ، مجددا” دنیای برنامه نویسی با تغییر مهمی مواجه گردید. در این راستا امکانات مناسبی برای نوشتن برنامه های مبتنی بر بانک های  اطلاعاتی ، در اختیار برنامه نویسان قرار گرفت. ماکروسافت بدین منظور محصول جدیدی با نام DAO)Data Access Objects) را ارائه نمود . برنامه نویسان با استفاده از DAO ، امکان انجام عملیات متفاوت در رابطه با داده ها را ، بدست آوردند . نسخه های شماره چهار و پنج ، قابلیت های نسخه سه را افزایش و این امکان را  برای  پیاده کنندگان نرم افزار فراهم نمود  تا برنامه های خود را جهت اجراء در محیط ویندوز ۹۵ ، طراحی و پیاده سازی نمایند . در این زمینه ، برنامه نویسان قادر به نوشتن  کدهائی گردیدند که امکان استفاده از آنان  توسط سایر پیاده کنندگان نرم افزار که از زبانی دیگر استفاده می کردند، فراهم گردید. نسخه شماره شش ویژوال بیسیک ، روش جدیدی بمنظور دستیابی به بانک های اطلاعاتی را ارائه نمود: ADO)ActiveX Data Objects )  . یکی از اهداف اولیه  طراحی  ADO ، امکان دستیابی به بانک های اطلاعاتی برای پیاده کنندگان برنامه های مبتنی بر وب است که از تکنولوژی ASP ، استفاده می نمایند.

همزمان با ارائه جدیدترین نسخه ویژوال بیسیک که VB.NET نامیده می شود ، بسیاری از محدودیت های مرتبط با ویژوال بیسیک برطرف گردید . در گذشته  ویژوال بیسیک با انتفادات  فراوان مواجه ( عدم وجود امکانات مناسب در مقایسه با جاوا و یا ++C ) و بسیاری آن را نظیر یک اسباب بازی در دنیای وسیع زبان های برنامه نویسی می پنداشتند. VB.NET با  غلبه بر مشکلات نسخه های پیشین ، توانسته است در مدت زمان کوتاهی ، بعنوان یک ابزار پیاده سازی بسیار قدرتمند مطرح و گزینه ای مناسب برای برنامه نویسان در تمامی سطوح باشد .

نصب VB.NET
برای نصب VB.NET ، از دو رویکرد متفاوت می توان استفاده کرد :

  • نصب بهمراه  ویژوال استودیو دات نت
  • نصب نسخه استاندارد

هر یک از گزینه های فوق ، امکان ایجاد برنامه های مبتنی بر ویندوز را فراهم می نمایند . مراحلی که در ادامه ذکر می گردد ، نحوه نصب ویژوال استودیو را تشریح  می نماید .

  • مرحله اول : برنامه Setup.exe را از روی CD مربوطه فعال نمائید.
  • مرحله دوم : جعبه محاوره ای ، مراحل و اولویت های عملیات  نصب را نشان خواهد داد. بمنظور صحت عملکرد  VB.NET ، چندین Component نصب و یا بهنگام خواهند شد . اولین مرحله نصب، بهنگام سازی عناصر (Components) است . بر روی گزینه Windows Component Update ، کلیک نمائید.
  • مرحله سوم : برنامه نصب در ادامه سیستم را بررسی تا نوع عناصری را که می بایست بهنگام گردند، مشخص گردد. دامنه فرآیند بهنگام سازی به وضعیت ماشینی که بر روی آن ویژوال استودیو دات نت نصب می گردد، بستگی خواهد داشت .
  • مرحله چهارم : با توجه به اینکه ممکن است در زمان بهنگام سازی لازم باشد چندین مرتبه سیستم راه اندازی گردد ، از شما درخواست نام و رمز عبور شده تا ضرورتی به نشستن و نگاه کردن به کامپیوتر و واکنش لازم ( درج نام و رمز عبور به سیستم ) پس از هر مرتبه راه اندازی سیستم نباشد .  بدین ترتیب در زمان راه انداری سیستم ،  عملیات مربوطه بصورت اتوماتیک و بدون نیاز به تایپ نام و رمز عبور ، انجام خواهد شد . عملیات فوق ، اختیاری است و در صورتیکه گزینه فوق انتخاب نگردد ، با هر مرتبه راه اندازی سیستم، پیام مناسب ارائه و می بایست واکنش لازم ( تایپ نام و رمز عبور)  را انجام داد .
  • مرحله پنجم : در این مرحله با فشردن دکمه ! Install Now  ، بهنگام سازی عناصر (Components) آغاز می گردد . با اتمام هر یک از آیتم ها یک Check mark بمنزله اتمام مرحله مربوطه نشان داده می شود  . در مقابل عنصر جاری برای بهنگام سازی نیز یک فلش قرمز رنگ نسان داده می شود.
  • مرحله ششم : پس از بهنگام سازی عناصر ، مجددا” به صفحه اصلی Setup مراجعت و امکان نصب ویژوال استودیو دات نت فراهم می گردد.( کلیک نمودن برروی گزینه Visiual Studio.NET )
    نکته : در صورتیکه قصد دارید که از طریق ماشین فوق ، یک برنامه تحت وب پیاده سازی نمائید ، لازم است IIS و FrontPage Extensions  قبلا” نصب شده باشد( بصورت پیش فرض در زمان نصب ویندوز ۲۰۰۰ نصب خواهد شد ) در صورتیکه ویژوال استودیو دات نت ، بر روی کامپیوتری نصب می گردد که دارای سیستم عامل ویندوز ۲۰۰۰ نسخه Professional  است ، با یک پیام خطاء مواجه خواهیم شد( عدم وجود عناصر لازم ) با فشردن دکمه Install Component ، عملیات نصب IIS و Frontpage Extensions انجام خواهد شد . در صورتیکه دکمه Continue ، انتخاب گردد ، در آینده نمی توانید برنامه های تحت وب را بصورت محلی بر روی کامپیوتر خود پیاده سازی نمائید .
  • مرحله هفتم : نظیر اکثر برنامه های نصب ، لیستی از گزینه های موجود ( شامل عناصر ) برای نصب در اختیار شما قرار می گیرد . شما می توانید ، صرفا” آنچیزی را که بدان نیاز دارید ، نصب نمائید . مثلا” در صورتیکه ظرفیت درایو شما پایین و یا ضرورتی به استفاده از ویژوال ++C دات نت را ندارید ، می توان در این مرحله از نصب آن صرفنظر کرد. هر گزینه ای که در این مرحله انتخاب نمی گردد ، می توان در صورت ضرورت آن را در آینده نصب کرد. برای هر یک از امکاناتی  که قرار است نصب گردند ، سه بخش اطلاعاتی متفاوت نمایش داده می شود :
    بخش Feature Properties . فایل ها ی مورد نظر برای نصب و میزان فضای مورد نیاز را نشان می دهد .

    بخش Feature description . هر Feature چیست و چه عملیاتی را انجام می دهد .

    بخش Space Allocation ، وضعیت  فضای ذخیره سازی هارد را  با توجه به گزینه های انتخاب شده ، نشان خواهد داد .

    نکته : زمانیکه ویژوال استودیو دات نت ، اجراء می گردد مجموعه ای از اطلاعات بین دیسک و حافظه مبادله می گردد . بنابراین لازم است به میزان کافی ظرفیت آزاد  بر روی هارد دیسک وجود داشته باشد ، در این راستا نمی توان دقیقا” مشخص نمود که به چه میزان فضای آزاد نیاز خواهد بود ولی حداقل یکصد مگابایت توصیه می گردد .

  • مرحله هشتم : ویژوال استودیو دات نت ، شامل مجموعه ای گسترده از فایل های مستندات ( راهنما )  است . در این مرحله می توان تنظیمات لازم در خصوص اجرای مستندات از طریق CD و یا دایرکتوری نصب شده بر روی هارد را انجام داد . در این زمینه می توان یک مسیر بر روی هارد را مشخص تا مستندات نصب و یا گزینه Run From Source را انتخاب تا بر اساس آن مستندات همچنان بر روی CD باقی بمانند .
  • مرحله نهم : پس از انتخاب عناصر مورد نظر برای  نصب  ، با فشردن دکمه ! Install Now ، عملیات نصب آغاز می گردد . مدت زمان نصب ، بستگی به موارد انتخابی  و نوع سیستم دارد . مثلا”  نصب تمام ویژوال استودیو دات نت بهمراه تمامی مستندات بر روی یک ماشین با دارا بودن ۲۵۶ مگابایت حافظه اصلی، سرعت  ۶۵۰ مگاهرتز و دوازده گیگابایـت هارد دیسک  ،  حدود یک ساعت طول خواهد کشید .
  • مرحله دهم : پس از اتمام مرحله قبل ، با انتخاب گزینه Service Release ، بررسی لازم در خصوص بهنگام سازی  انجام می گیرد . این عملیات از طریق اینترنت انجام خواهد شد . در این زمینه به یک خط پرسرعت و مطمئن نیاز خواهد بود .

پس از انجام مراحل فوق ، ویزوال استودیو دات نت بر روی سیستم نصب و محیط لازم برای نوشتن برنامه های VB.NET فراهم شده است .

ذخیره سازی اطلاعات در VB.NET ( بخش اول )

یکی از مهمترین مسائل موجود در هر زبان برنامه نویسی ، نحوه ذخیره و بازیابی اطلاعات مورد نیاز یک برنامه است . فرض کنید ، قصد نوشتن برنامه ای را داشته باشیم که در آن از کاربران بخواهیم نام خود را وارد نمایند . پس از درج نام توسط کاربران ، اطلاعات فوق را  چگونه می بایست ذخیره  نمود تا امکان استفاده از آنان در برنامه ، فراهم گردد؟. چگونه می توان اقدام به ذخیره سازی داده هائی با محتویاتی خاص نظیر : “اعداد” و یا ” تاریخ ” نمود؟. نحوه بازیابی اطلاعات ذخیره شده به چه صورت است ؟  در پاسخ به تمامی سوالات فوق ، می بایست  به جایگاه بسیار مهم “متغیرها ” در یک زبان برنامه نویسی ، اشاره نمود .

متغیرها یکی از مفاهیم اولیه و در عین حال بسیار مهم در دنیای برنامه نویسی می باشند . با استفاده از متغیرها یک نام ( label ) به ناحیه ای از حافظه نسبت داده شده و امکان ذخیره سازی نوع خاصی از داده در آن فراهم می گردد . هر یک از زبان های برنامه نویسی دارای امکانات و مجموعه قوانینی به منظور تعریف ، نسبت دهی و دستابی به محتویات یک متغیر می باشند .با استفاده از متغیرها ، امکان انجام عملیات متفاوتی نظیر محاسبات ریاضی ، پردازش بر روی رشته ها ، شمارش طول یک عبارت ، در یک برنامه فراهم می گردد .

VB.NET ، زبانی قدرتمند در ارتباط با نوع داده ها می باشد . در زمان تعریف یک متغیر ، می بایست نوع داده مربوطه را نیز مشخص نمود (نظیر String,Integer و یا Date )  .پس از تعریف یک متغیر و نوع آن ، نحوه برخورد با داده ( نحوه ذخیره و بازیابی و انجام عملیات مجاز بر روی آن ) ، مشخص می گردد.

در این مقاله قصد داریم به بررسی امکانات VB.NET به منظور ذخیره سازی اطلاعات  پرداخته و در این راستا با نوع های متفاوت داده و جایگاه هر یک از آنان ، آشنا شویم .

متغیر چیست ؟

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

مثال : در مثال زیر سه متغیر به منظور ذخیره سازی یک رشته Text ، یک مقدار عددی و یک تاریخ ، تعریف و مقداردهی شده اند .

Dim    City As String
Dim    Counter As Integer

Dim    PublishDate As Date

City = “Tehran”

Counter = 190

PublishDate = #6/15/2004#

پس از تعریف هر متغیر ، امکان نسبت دهی یک مقدار به آن ، مشاهده اطلاعات ذخیره شده ، بازیابی اطلاعات و یا درج اطلاعات جدید در آن ، فراهم می گردد.متغیرها از جمله عناصر ضروری برای ذخیره سازی داده در یک زبان برنامه نویسی بوده و VB.NET نیز از این قاعده مستثنی نخواهد بود .

تعریف یک متغیر
همانگونه که در مثال قبل مشاهده گردید ، قبل از انتساب  مقدار به یک متغیر، می بایست  اقدام به تعریف متغیر و مشخص نمودن نوع داده  آن نمود . پس از تعریف یک متغیر و مشخص نمودن نوع آن ، نحوه برخورد با آن در برنامه مشخص خواهد شد. با استفاده از فرآیندی موسوم به Declaration ، اقدام به تعریف متغیرها و نوع آنان ، می گردد. تعریف متغیرها ، یکی از نکات مهم در دنیای برنامه نویسی است . در زما ن ایجاد صفحات پویا با استفاده از ASP.NET و توسط زبان های برنامه نویسی نظیر VB.NET و یا  سی شارپ ، می بایست تمامی متغیرها قبل از استفاده دریک برنامه و یا صفحه وب ، تعریف گردند .

در VB.NET برای تعریف یک متغیر از کلید واژه Dim  ( اقتباس شده از واژه Dimension ) ، استفاده می گردد.

مثال : در مثال زیر ، یک متغیر رشته ای با نام strCityName ، تعریف و در ادامه مقدار ” Teharn”  ، به آن نسبت داده شده است . 

Dim strCityName  As String
strCityName = “Tehran”

در زمان تعریف یک متغیر بطور همزمان می توان مقداری را به آن نیز نسبت داد ( تعریف و مقداردهی همزمان ) :

Dim strCityName  As String = “Tehran”

امکان تعریف همزمان چندین متغیر هم نوع  در یک سطر نیز وجود دارد : ( تعریف همزمان چندین متغیر با نوع یکسان )

Dim strCityName1 , strCityName2 , strCityName3 As String
strCityName1 = “Tehran”

strCityName2 =”Ahwaz”

strCityName3 = “Shiraz”

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

مثال کاربردی : در این مثال در ابتدا سه متغیر را تعریف و پس از مقداردهی مناسب هر یک از آنان ، نتایج را با یک فرمت مناسب در خروجی نمایش خواهیم داد ( یک صفحه ASPX ) .

مرحله اول : فعال نمودن ویرایشگر صفحات وب و تایپ دستورات زیر :

<Script Language= “vb” runat=”server”>
Sub Page_Load ( )

  Dim ArticleTitle As String

  Dim ArticleNumber As Integer

  Dim PublishDate As Date

  ArticleTitle = ” ذخیره سازی اطلاعات در VB.NET ( بخش اول ) ”

  ArticleNumber = 190

  PublishDate = #6/15/2004#

  Label1.Text = ArticleTitle

  Label2.Text = ArticleNumber

  Label3.Text = PublishDate

  End Sub

</Script>

<html dir=”rtl”>

  <head>

    <title>ایجاد متغیر </title>

 </head>

  <body>

عنوان مقاله   :

   <asp:label id=”Label1″ runat=”server” />

    <br>شماره مقاله :

    <asp:label id=”Label2″ runat=”server” />

    <br>تاریخ انتشار مقاله :

     <asp:label id=”Label3″ runat=”server” />

   </body>

</html>

مرحله دوم : ذخیره نمودن برنامه فوق در فایلی با نام TestVariable.aspx

مرحله سوم : فعال نمودن فایل  TestVariable.aspx در مرورگر

مرحله چهارم : برگشت به برنامه فوق و افزودن یک خط جدید ( استفاده از یک متغیر که قبلا” تعریف نشده باشد )

    …
   Dim  PublishDate As Date

   ArticleTitle = ” ذخیره سازی اطلاعات در VB.NET ( بخش اول ) ”

   ArticleNumber = 190

   PublishDate = #6/15/2004#

   ArticleAuthor = “مدیریت وب ”

    …

   Label1.Text = ArticleTitle

   …

مرحله پنجم : ذخیره نمودن برنامه فوق در فایلی با نام TestVariable.aspx

مرحله ششم  : فعال نمودن  فایل TestVariable.aspx در مرورگر

همانگونه که مشاهده می شود ، در خط شماره نه (خطی که از متغیر ArticleAuthor ، استفاده شده است ) به دلیل استفاده از متغیری که قبلا” اقدام به تعریف آن نشده است با یک خطاء مواجه خواهیم شد. به منظور برطرف نمودن خطای فوق ، می بایست متغیر ArticleAuthor تعریف و در ادامه مقدار مورد نظر در آن ذخیره گردد.

توضیحات مثال :

  • در برنامه فوق ، در ابتدا اقدام به تعریف سه متغیر شده است . ما قصد داریم که از text در متغیر ArticleTitle استفاده نمائیم ، بنابراین آن را به صورت String تعریف کرده ایم . شماره مقاله یک عدد صحیح است و بدین منظور و برای نگهداری مقدار مربوطه از  متغیری با نام  ArticleNumber و نوع صحیح استفاده شده است . از متغیر PublishDate ، که از نوع Date تعریف شده است به منظور ذخیره  تاریخ نشر یک مقاله، استفاده شده است .
Dim  ArticleTitle As String
Dim  ArticleNumber As Integer

Dim  PublishDate As Date

  • پس از تعریف هر یک از متغیرها ، می توان به هر یک از آنان مقدار مورد نظر را نسبت داد :  مقدار ” ذخیره سازی اطلاعات در VB.NET ( بخش اول ) ” ، به متغیر ArticleTitle نسبت داده شده است . در این رابطه ، مقدار مورد نظر بین علامت کوتیشن قرار داده شده است . بدین ترتیب به VB.NET اعلام می شود که ما قصد نسبت دهی یک text  به یک متغیر را داریم . در صورتی که تمایل به انتساب یک مقدار عددی به متغیری را داشته باشیم ، می بایست علامت کوتیشن را حذف نمائیم. در متغیردوم ، مقداری صحیح و عددی به  ArticleNumber ، نسبت داده شده است . در نهایت مقداری از نوع Date  به متغیر PublishDate ، نسبت داده شده است .
ArticleTitle = ” ذخیره سازی اطلاعات در VB.NET ( بخش اول ) ”
ArticleNumber = 190

PublishDate = #6/15/2004#

  • در ادامه ، سه کنترل <asp:label> ، و با نام Label1,Label2 و Label3 ایجاد و مقدار خصلت Text هر یک از آنان ، محتویات هر یک از سه متغیر تعریف شده، در نظر گرفته شده است .
Label1.Text = ArticleTitle
Label2.Text = ArticleNumber

Label3.Text = PublishDate

  • در ادامه ، یک خط جدید به برنامه اضافه گردید تا نشان داده شود که در صورت استفاده از یک متغیر که قبلا” آن را تعریف نکرده ایم ، با چه نوع خطائی برخورد خواهیم کرد. علت بروز خطاء ، به عدم تعریف متغیر ArticleAuthor ، برمی گردد . برای رفع اشکال فوق ، می بایست  متغیر ArticleAuthor  را در ابتدا تعریف نمود :
Dim ArticleAuthor As String

انواع نوع های ساده
VB.NET دارای دوازده نوع داده متفاوت بوده که می توان آنان را به سه گروه عمده تقسیم نمود : نوع های عددی ، نوع های حرفی ( متنی ) و نوع های متفرقه . در بخش دوم این مقاله به بررسی هر یک از آنان خواهیم پرداخت .

ذخیره سازی اطلاعات در VB.NET ( بخش دوم )

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

انواع نوع های ساده ( Simple Data Types )
VB.NET دارای دوازده نوع داده متفاوت بوده که می توان آنان را به سه گروه عمده تقسیم نمود : نوع های عددی ، نوع های حرفی ( متنی ) و نوع های متفرقه . در ادامه به بررسی هر یک از گروه های فوق ، خواهیم پرداخت ( در این مقاله نوع Object بررسی نخواهد شد و در مقالاتی جداگانه به این نوع داده ، خواهیم پرداخت ) . 

گروه اول : نوع های عددی

با توجه به تنوع گسترده نوع های عددی در این گروه ، می توان هر گونه عددی را به یک متغیر نسبت داد . مثلا” می توان متغیرهائی را ایجاد و به آنان اعداد صحیح ، اعداد کسری و یا اعداد اعشاری منفی را نسبت داد .

Dim IntegerNumber1 As Integer
Dim DecimalNumber2 As Decimal

Dim FloatingPointNumber3 As Float

IntegerNumber1 = 75

DecimalNumber2  = ۳٫۱۴

FloatingPointNumber3 = -1.4E02

نوع های عددی ، یکی از انواع داده متداول در VB.NET بوده که خود به هفت نوع  متفاوت تقسیم می گردند :

  • Integer : برای تعریف متغیرهائی که دارای مقادیر صحیح می باشند ، استفاده می گردد( ۳ ، ۱۲ ، ۵ – ) .  متغیرهائی از این نوع ، قادر به نگهداری مقادیر صحیح  بین  ۲،۱۴۷،۴۸۳،۶۴۸ – تا ۲،۱۴۷،۴۸۳،۶۴۷  ، می باشند .  برای اعداد خارج از محدوده فوق ، نوع long  در نظر گرفته می شود.
  • Byte : متغیرهائی از این نوع ، قادر به نگهداری مقادیرصحیح بین ، ۰ تا ۲۵۵ ، می باشند . از نوع فوق به منظور انجام عملیات پایه و ساده ریاضی استفاده می گردد . ( مثلا” شمارنده هائی در برنامه که مقدار آنان حداکثر ۲۵۵ می باشد) . برای ذخیره سازی این نوع متغیرها  صرفا” یک بایت حافظه در نظر گرفته می شود.
  • Short : نوع فوق ، شکلی خاص از نوع Integer می باشد. متغیرهائی از این نوع قادر به نگهداری محدوده کمتری از اعداد صحیح ( بین  ۳۲،۷۶۸ – تا ۳۲،۷۶۷   )  در مقایسه با نوع Integer می باشند .
  • Long : نوع فوق شباهت زیادی به نوع Integer  داشته با این تفاوت که امکان ذخیره سازی محدوده بیشتری از اعداد را فراهم می نماید. یک متغیر از نوع Long قادر به ذخیره سازی مقادیربین  ۹،۲۲۳،۳۷۲،۰۳۶،۸۵۴،۷۷۵،۸۰۸ – تا  ۹،۲۲۳،۳۷۲،۰۳۶،۸۵۴،۷۷۵،۸۰۷ ، می باشد .
  • Single : متغیرهائی از این نوع ، قادر به نگهداری اعداد اعشاری با دقت معمولی ودر محدوده زیر می باشند : 
محدوده نوع Single
 -۳٫۴۰۲۸۲۳E38 to  -۱٫۴۰۱۲۹۸E-45  اعداد  منفی
۱٫۴۰۱۲۹۸E-45  to   ۳٫۴۰۲۸۲۳E38  اعداد  مثبت
  • Double : متغیرهائی از این نوع ، قادر به نگهداری اعداد اعشاری با دقت مضاعف و در محدوده زیر می باشند :
محدوده نوع Double
-۱٫۷۹۷۶۹۳۱۳۴۸۶۲۳۲E308 to -4.94065645841247E-324  اعداد  منفی
۴٫۹۴۰۶۵۶۴۵۸۴۱۲۴۷E-324 to 1.79769313486232E2308  اعداد  مثبت
  • Decimal : متغیرهائی از این نوع ، قادر به نگهداری اعداد اعشاری تا حداکثر بیست و هشت رقم اعشار می باشند.
محدوده نوع Decimal
 +/- ۷۹،۲۲۸،۱۶۲،۵۱۴،۲۶۴،۳۳۷،۵۹۳،۵۴۳،۹۵۰،۳۳۵ حداکثر: با لحاظ نمودن صفر رقم اعشار
+/- ۷٫۹۲۲۸۱۶۲۵۱۴۲۶۴۳۳۷۵۹۳۵۴۳۹۵۰۳۳۵ حداکثر: با لحاظ نمودن بیست و هشت رقم اعشار

گروه دوم : نوع های حرفی ( متنی )

برای ذخیره سازی محتویات متنی ، از دو نوع داده String و Char استفاده می شود:

  • نوع String : متغیرهائی از این نوع ، همه چیز را به عنوان text در نظر می گیرند ولو این که مقدار مورد نظر شامل حروف و  اعداد و یا صرفا” اعداد و یا تاریخ باشد . دستور زیر متغیری از نوع  string و با نام CityName را تعریف و در ادامه   مقدار “Tehran” ، به آن نسبت داده می شود.
Dim CityName As String
CityName = “Tehran”
  • همانگونه که قبلا” اشاره گردید ، برای نسبت دهی یک مقدار به متغیرهائی از نوع string ، از کوتیشن استفاده می شود.انجام عملیات ریاضی بر روی رشته ها ، مجاز نخواهد بود (حتی در صورتی که محتویات آنان عددی باشد) . مثلا” در صورتی که تصمیم به جمع دو رشته “۱۲” و “۱۴” را با یکدیگر داشته باشیم ، مقدار  “۲۶”  بدست نخواهد آمد. در چنین حالتی ، ماحصل جمع دو رشته مقدار  “۱۴۱۲” ، خواهد بود . چراکه رشته Number2 با Number1 را جمع کرده ایم در صورتی که رشته Number1 با Number2 جمع شود ، مقدار ” ۱۲۱۴ ” را خواهیم داشت .
Dim Number1 As string
Dim Number2 As string

Dim Number3 As string

Number1 = “12”

Number2 = “14”

Number3 = Number2 + Number1  ‘ Result :  “۱۴۱۲”

  •  نوع Char نوع فوق ، نسبت به نوع String متفاوت بوده و در آن  text به عنوان یک عدد ، ذخیره می گردد. بدین ترتیب ، امکان ذخیره سازی صرفا” یک کاراکتر در یک متغیر، فراهم می گردد. در چنین حالتی می توان یک عدد بین صفر تا ۶۵۵۳۵ را ذخیره نمود. در صورتی که قصد نمایش محتویات یک متغیر از نوع char را داشته باشیم ،  صرفنظر از نحوه ذخیره سازی ، یک کاراکتر text ، نمایش داده می شود . کد زیر ، نحوه تعریف و نسبت دهی یک مقدار به متغیری از نوع char را نشان می دهد( حرف ‘C’ ،  پس از کوتیشن ، نشاندهنده این موضوع است که متغیر از نوع  Char می باشد) .
Dim Letter As Char
Letter = “Q”C    ‘ This would be stored as 81

گروه سوم : نوع های متفرقه 
دو نوع داده دیگر در  VB.NET وجود دارد که می توان آنان را در این گروه قرار داد :

  •  نوع Date : متغیرهائی از این نوع ، قادر به نگهداری تاریخ و زمان می باشند . برای ذخیره تاریخ می بایست از فرمت  mm/dd/yy استفاده  گردد. مقدار نسبت داده شده به یک متغیر از نوع Date توسط علائم ” # ” ، محصور می گردد . متغیرهائی از نوع Date ، قادر به ذخیره سازی تاریخ تا سال ۹۹۹۹ می باشند .
Dim Date1 As Date
Date1 = # 12/ 07 / 2004#
  • از متغیرهای نوع Date می توان به منظور ذخیره سازی زمان نیز استفاده نمود :
Dim Time1 As Date
Time1 = #16:25:05#
  • نوع Boolaen : متغیرهائی از این نوع می توانند دارای مقدار True و یا False باشند . در VB.NET در صورتی که مقادیر فوق را به نوع صحیح تبدیل نمائیم ، مقادیر ۱ – و صفر را خواهیم داشت . زمانی که سایر نوع های عددی را به مقادیر Boolaen تبدیل می نمائیم ، مقدار صفر به False و سایر مقادیر به True تبدیل خواهند شد . زمانی که مقادیر Boolean را به سایر نوع های داده تبدیل می کنیم ، False مقدار صفر و True مقدار یک را دارا خواهد بود. علت این که در مواردی که True تبدیل به نوع صحیح در VB.NET می گردد مقدار ۱ – و زمانی که به سایر نوع ها تبدیل می گردد ، مقدار ۱ + را دارا می باشد ، به حمایت از کدهای نوشته شده قبلی در ویژوال بیسیک برمی گردد .
Boolean Value Numeric value
True
False
 -۱ / +۱
 ۰
  • از متغیرهای Boolean ، می توان به منظور نگهداری وضعیت یک متغیر استفاده نمود.  در صورتی که مقدار اینچنین متغیرهائی True نباشد ، قطعا” مقدار آنان False خواهد بود.  بدین ترتیب می توان از این نوع متغیرها در موارد متعدد و متناسب با شرایط موجود استفاده و پس از اتخاذ تصمیم ، عملیات مورد نظر را دنبال نمود.
Dim  Done As  Boolean
Done = False

If   Done = False then  

       …

Else

      …

  • مقدار False و یا True ، نمی بایست بین کوتیشن قرار داده شوند .

نامگذاری متغیرها
بهترین حالت برای نامگذاری یک متغیر ، در نظر گرفتن نامی است که نشاندهنده وظیفه یک متغیر در برنامه باشد. در صورتی که اسامی متغیرها به درستی انتخاب گردند ، خوانائی برنامه و در نهایـت نگهداری و اعمال تغییرات در آینده نیز راحتر خواهد بود . پیشنهاد می گردد ، اسامی متغیرها به صورت تشریحی در نظر گرفته شود، حتی اگر این کار باعث طولانی تر شدن اسامی می گردد .

برای انتخاب نام یک متغیر ، موارد زیر پیشنهاد می گردد : 

  • استفاده از اسامی نظیر DateStart و یا DateEnd بمراتب بهتر از اسامی StartDate و یا EndDate می باشد ، چراکه اسامی فوق در صورت جستجوی متغیرها بر اساس حروف الفبائی،  به دنبال هم نمایش داده می شوند .
  • متغیرهائی نظیر Price ،Name و Number  گیج کننده می باشند . چراکه معمولا” در برنامه ها بیش از یک مورد از آنان وجود دارد نظیر : NameFirst ,NameLast, PriceBuy و PriceSell .
  • استفاده از اسامی مشابه نوع داده ها ، مجاز نمی باشد . مثلا” تعریف متغیری با نام Integer ، مجاز نخواهد بود .
  • برای نامگذاری متغیرها از اسامی خلاصه شده ای  که اقتباس شده از کلمات متفاوتی می باشند، استفاده نگردد . مثلا” استفاده از متغیری با نام  FDOM که اقتباس شده از کلمات First Day Of  Month می باشد ، یک انتخاب مناسب نخواهد بود ، چراکه FDOM می تواند مخفف کلمات متعددی باشد .
  • در اکثر زبان های برنامه نویسی انتخاب یک نام برای متغیر تابع مجموعه مقررات و محدودیت هائی است . در VB.NET تمامی متغیرها می بایست با یک حرف شروع شده و نمی بایست نام در نظر گرفته شده شامل نقطه و یا فضای خالی باشد . پیشنهاد می گردد به منظور افزایش خوانائی یک برنامه،  صرفا” از علامت Underscore ( _ )  به همراه نام یک متغیر استفاده گردد .
  • VB.NET نسبت به حروف بزرگ و کوچک حساس نمی باشد . مثلا” متغیرهائی با نام counter و COUNTER  مشابه در نظر گرفته خواهند شد .برخی از زبان های برنامه نویسی نظیر سی شارپ و یا Jscript.NET ، نسبت به حروف بزرگ و کوچک حساس بوده و متغیرهائی با نام counter و COUNTER ، به عنوان دو متغیر جداگانه در نظر گرفته می شوند .

روشی برای نامگذاری متغیرها

در صورتی که دارای تعداد زیادی متغیر در یک برنامه باشیم ، می بایست از روش های خاصی به منظور آگاهی از نوع محتویات آنان ، استفاده کرد. در چنین مواردی می توان به بخش تعاریف متغیرها در برنامه مراجعه نمود و از نوع داده مربوط به هر یک از آنان آگاهی یافت . در مواردیکه هزاران متغیر در یک برنامه تعریف شده است ، منطقی نخواهد بود که برای آگاهی از نوع محتویات یک متغیر، لیست تمامی  متغیرها را بررسی نمود . در یک برنامه در برخی مواقع لازم است که نوع یک متغیر به نوع دیگر، تبدیل گردد، در چنین مواردی آگاهی از نوع یک متغیر کمک قابل توجهی را به برنامه نویس ارائه داده و از بروز خطاء در برنامه پیشگیری می نماید .بدین منظور می توان از مجموعه ای قواعد که به نوعی امروزه بین برنامه نویسان مرسوم شده اند ، برای مشخص نمودن نوع یک متغیر استفاده نمود . قواعد فوق ، اجباری نبوده و صرفا” بین برنامه نویسان مرسوم شده اند.رویکرد فوق ، گزینه ای مناسب برای نامگذاری متغیرها با توجه به نوع داده آنان است . در این روش که موسوم به Hungarian notation می باشد ،از سه حرف اول نام هر متغیر به منظور شناسائی نوع داده متغیر، استفاده می گردد :

 Data Type  Prefix  Example
Boolean bln blnMember
Byte byt bytByte
Char chr chrChar
Date dat datToday
Double dbl dblDouble
Decimal dec decDecimal
Integer int intSalary
Long lng lngLong
Single sng sngSingle
Short sho shoShort
String str strTextBox

در این رابطه از روشی دیگر با نام   Short Hungarain notation  استفاده می گردد . برای آگاهی از جزئیات این روش می توانید از آدرس  MSDN    ، استفاده نمائید .

در بخش سوم این مقاله با عملگرها ، عملیات بر روی متغیرهای رشته ای ، ثوابت و نوع های داده ساختیافته  نظیر آرایه ، آشنا خواهیم شد.

ذخیره سازی اطلاعات در VB.NET ( بخش سوم )

 آنچه تاکنون گفته شده است :
  • بخش اول :  جایگاه متغیرها در یک زبان برنامه نویسی و نحوه تعریف آنان در VB.NET
  • بخش دوم : بررسی انواع نوع های ساده در VB.NET

در بخش سوم این مقاله با عملگرها ، عملیات بر روی متغیرهای رشته ای ، ثوابت و نوع های داده ساختیافته  نظیر آرایه ، آشنا خواهیم شد.

عملگرها ( Operators )
استفاده از متغیرها در یک زبان برنامه نویسی زمانی مفید خواهد بود که بتوان بر روی آنان عملیاتی را انجام داد . به منظور انجام عملیات  بر روی متغیرها ، نیازمند استفاده از “عملگرها” می باشیم . “عملگر” ، علامتی است که مسئولیت انجام یک عملیات از قبل تعریف شده را بر روی “اپراندهای ” خود و تولید نتیجه مورد نظر ، برعهده دارد . اگر ۱+۲ = X باشد ، “X ” یک متغیر ، “=”  یک عملگر و مقادیر یک و دو ، اپراندهای آن می باشند .

عملگر نسبت دهی
عملگر “=” ، متداولترین و شناخته ترین عملگر استفاده شده در دنیای برنامه نویسی است.از عملگر فوق به منظور نسبت دادن مقدار به یک متغیر استفاده می گردد. ( متغیر در سمت چپ و مقدار متغیر در سمت راست عملگر “=” ،قرار می گیرد) .

Dim intNumber1  As Integer
intNumber1 = 7447

VB.NET هیچگونه تاکید و یا اجباری در خصوص تعداد فضای خالی ( Space ) استفاده شده در دو طرف علامت “=” ندارد.برنامه نویسان به منظور افزایش خوانائی برنامه ، می توانند  به تعداد مورد نظر از فضای خالی استفاده نمایند .

 Dim intNumber  As Integer
 intNumber =     ۳

عملیات ریاضی
در VB.NET ارزیابی یک عبارت از سمت راست به چپ ، انجام می شود. مثلا” در عبارت  intNumber1 = intNumber1 + 1  ، در ابتدا مقدار intNumber1 + 1 ، محاسبه شده و در ادامه مقدار بدست آمده در متغیر intNumber1 ، ذخیره می گردد . علامت “=” ، وظیفه یک عملگر نسبت دهی را برعهده داشته  و پس از محاسبه مقدار مورد نظر  آن را به  متغیر intNumber1 نسبت می دهد .

Dim intNumber ۱  As Integer
 intNumber1= 2

 intNumber1 =  intNumber1 + 1 

عملگرهای محاسباتی
در VB.NET از عملگرهای محاسباتی زیر استفاده می شود :

کاربرد عملگر
 جمع  +
 تفریق
 ضرب *
 تقسیم /
 توان ^
 منفی  –
 باقیمانده MOD

مثال : در برنامه زیر ، دو متغیر به اسامی intNumber1 و intNumber2 تعریف و پس از انتساب مقدار مورد نظر به هر یک از آنان ، مقادیر دو متغیر با یکدیگر جمع و حاصل در متغیری دیگر و با نام intNumber3 ، ذخیره می گردد .

Dim intNumber1   As Integer
Dim intNumber2   As Integer

Dim intNumber3   As Integer

intNumber1 = 14

intNumber2 = 12

intNumber3 =  intNumber1 + intNumber2  

به منظور مشخص نمودن اولویت انجام محاسبات در یک عبارت ، می توان از پرانتر استفاده نمود . مثلا” در کد زیر ، در ابتدا مقدار موجود در متغیر  intNumber2 بر عدد شش تقسیم و در ادامه  مقدار به دست آمده به متغیر intNumber1 اضافه شده و در نهایت ، نتیجه بدست آمده در متغیری با نام intNumber3 ذخیره می گردد( استفاده از پرانتز در یک عبارت ، باعث افزایش خوانائی برنامه نیز می گردد ) .

Dim intNumber1   As Integer
Dim intNumber2  As Integer

Dim intNumber3  As Integer

intNumber1= 14

intNumber2 = 12

intNumber3 =  intNumber1 + (intNumber2 /6 )  

مثال : در برنامه زیراز یک رابطه ساده ریاضی به منظور محاسبه میزان مالیات ، استفاده شده است .

<Script language=”vb”  runat=”server”>
 Sub Page_Load ( )

    Dim intEarn As Integer

    Dim intTax  As Integer

    Dim decTotal As Decimal

    intEarn = 150

    intTax = 10

    decTotal = intEarn – ( ( intEarn / 100 ) * intTax )

    Display1.Text = intEarn

    Display2.Text = ( intEarn / 100 ) * intTax

    Display3.Text = decTotal

End Sub

</Script>

<html dir=”rtl”>

<head>

  <title> استفاده از عملگرها در یک عبارت ریاضی </title>

</head>

<body>

 میزان دستمزد :  <asp:label  id=”Display1″ runat=”server” /><Br>

 مالیات : <asp:label  id=”Display2″ runat=”server” /><Br>

 مبلغ پرداختی پس از کسر مالیات   :  <asp:label  id=”Display3″ runat=”server” />

</body>

</html>

پس از ذخیره برنامه فوق در فایلی با نام TestTax.aspx و مشاهده آن در مرورگر ، خروجی زیر را خواهیم داشت :

توضیحات  : در برنامه فوق ، از سه متغیر به اسامی intEarn  (به منظور ذخیره  میزان دستمزد)  ، intTax ( به منظور ذخیره نرخ محاسبه مالیات )  و decTotal ( به منظور ذخیره مبلغ خالص پرداختی ) ، استفاده شده است .

Dim intEarn As Integer
Dim intTax  As Integer

Dim decTotal As Decimal

در ادامه ، مقادیر مورد نظر به متغیرهای  intEarn ( مقدار ۱۵۰ )  و  intTax  ( مقدار ۱۰ ) ، نسبت داده شده است .

 intEarn = 150
 intTax = 10

به منظور محاسبه مبلغ قابل پرداخت ، در ابتدا میزان مالیات با توجه به نرخ مشخص شده ( ۱۰ درصد) ، محاسبه و پس از کسر مبلغ فوق از میزان دستمزد ، حاصل در متغیر  decTotal ، ذخیره می گردد.  از پرانتر به منظور مشخص نمودن اولویت محاسبات ، استفاده شده است .

 decTotal = intEarn – ( ( intEarn / 100 ) * intTax )

در نهایت ، مقادیر  decTotal ،  intEarn و میزان مالیات محاسبه شده به خصلت text هر یک از کنترل های label1,label2 و label3  نسبت داده شده است ( Display1 ، Display2 و Display3 ) .

 Display1.Text = intEarn
 Display2.Text = ( intEarn / 100 ) * intTax

 Display3.Text = decTotal

عملیات بر روی  رشته ها
با استفاده از عملگر “+” می توان دو متغیر از نوع  integer را با یکدیگر جمع نمود . در صورتی که دارای دو متغیر از نوع string باشیم و بخواهیم دو رشته فوق را با یکدیگر ترکیب نمائیم از فرآیندی با نام Concatenation ، استفاده می شود . در دات نت به منظور اتصال رشته ها و الحاق آنان به یکدیگر از دو روش مختلف استفاده می گردد : .

  • روش اول : در این روش ، رشته دوم به انتهای رشته دوم اضافه شده و رشته ای جدید ایجاد می گردد . بدین منظور از عملگر “&” ( ampersand ) ، استفاده می شود .
Dim strTest As String 
strTest = ” Test ” & “VB.NET”
  • ماحصل ترکیب دو رشته فوق ، TestVB.NET بوده که به متغیر strTest نسبت داده می شود. در VB.NET به صورت اتوماتیک از فضای خالی ( Space ) استفاده نمی گردد و در صورت لزوم می توان به میزان دلخواه فضای خالی را به عنوان یک رشته استفاده و آن را با سایر متغیرها ، ترکیب نمود . در مثال زیر سه رشته که یکی از آنان Space ( که خود نیز یک رشته است ) ، می باشد با یکدیگر ترکیب شده اند.
Dim strTest  As String 
strTest = ” Test ” & ”   ” & “VB.NET”
  • ماحصل ترکیب سه رشته فوق ، Test   VB.NET بوده که به متغیر strTest  نسبت داده می شود .
  • روش دوم : در این روش برای اتصال رشته ها به یکدیگر از عملگر “=+” ، استفاده می گردد . ( در متغیر strTest مقدار : ” TestString   TestString   TestString   TestString   ” ، ذخیره می گردد).
Dim strTest  As String 
Dim strFirst As String

strFirst =”TestString   ”

strTest += strFirst 

strTest += strFirst

strTest += strFirst

مقایسه رشته ها
از عملگرهای مقایسه ای  به منظور مقایسه محتویات دو متغیر و انجام عملیات مورد نظر با توجه به نتایج بدست آمده ،  استفاده می شود . در مواردی که متغیرها از نوع String می باشند ، امکان مقایسه و  مرتب نمودن متن با توجه به اولویت هر یک از حروف الفبائی ، فراهم می گردد. جدول زیر ، عملگرهای مقایسه ای را نشان می دهد .

کاربرد عملگر
 مساوی  =
 کوچکتر
 کوچکتر یا مساوی =>
 نامساوی <> 
 بزرگتر
 بزرگتر یا مساوی  =<

 در مثال زیر دو متغیر از نوع String و به اسامی  strName1 و strName2 تعریف و پس از نسبت دادن مقدار دلخواه به هر یک از آنان ، از عملگرهای مقایسه ای به منظور مقایسه  و انجام عملیات مورد نظر استفاده شده است . 

Dim strName1 As String 
Dim strName2  As String

strName1=”Test1″

strName1=”HHH”

If  strName1 < strName2 Then Display1.Text = ” Test1″

If  strName2 < strName1 Then Display1.Text = ” HHH”

ثوابت
ثوابت ، به منزله  متغیرهائی می باشند که مقدار نسبت داده شده به  آنان در زمان اجرای برنامه تغییر نمی نماید. “نرخ محاسبه میزان مالیات ” ، نمونه ای در این زمینه بوده که  مقدار آن به ندرت تغییر می نماید. در زمان فروش یک کالا و به منظور محاسبه میزان مالیات مربوطه ، ممکن است به دفعات به آن مراجعه گردد . حتی اگر نرخ محاسبه مالیات تغییر یابد ، شما صرفا” مجبور به اعمال تغییرات در یک مکان ، خواهید بود.  استفاده از “ثوابت ” ، خوانائی یک برنامه را افزایش و باعث تسهیل در امر نگهداری یک برنامه می گردد .

اکثر زبان های برنامه نویسی روش خاصی را به منظور تعریف “ثوابت ” ، در اختیار برنامه نویسان قرار می دهند . در VB.NET به منظور تعریف یک ثابت از کلید واژه Const استفاده می گردد ( معمولا” اسامی ثوابت ، به صورت “حروف بزرگ ” ، در نظر گرفته می شوند ).

Const TAXRATE = 10

پس از تعریف یک ثابت ، در صورتی که در ادامه برنامه قصد تغییر مقدار نسبت داده شده به آن را داشته باشیم ، با یک پیام خطاء مواجه خواهیم شد .

نوع های داده ساختیافته
 نوع های ساده ، صرفا” قادر به ذخیره سازی یک آیتم اطلاعاتی می باشند . در صورتی که قصد ذخیره چندین آیتم اطلاعاتی مرتبط به هم در یک برنامه را داشته باشیم ، می بایست از “نوع های داده ساختیافته ” ، استفاده گردد. VB.NET  دارای امکانات متعددی به منظور ذخیره نمودن اینگونه اطلاعات است ( از اشیاء دیکشنری تا جدول hash و XML ) . در ادامه با  “آرایه ها”  که ساده ترین نوع در این زمینه می باشند ، آشنا می شویم .

آرایه ( Array )
از آرایه ها به منظور ذخیره سازی مجموعه ای از اقلام اطلاعاتی مرتبط به هم در متغیرهائی که همگی دارای یک نام بوده و توسط یک ایندکس عددی اضافه شده به انتهای آنان شناسائی می گردند، استفاده می شود. دستورات زیر نحوه تعریف یک آرایه و نسبت دهی مقدار به هر یک از عناصر آن را نشان می دهد .

Dim StrName ( 5 ) As String
StrName(0) = “AAA”

StrName(1) = “BBB”

StrName(2) = “CCC”

StrName(3) = “DDD”

StrName(4) = “EEE”

StrName(5) = “FFF”

اولین ایندکس یک آرایه، صفر در نظر گرفته می شود ( Zero based ) . در مثال فوق ، شش عنصر و به ترتیب در مکان های صفر تا پنج آرایه ، ذخیره می گردند .

تعریف یک آرایه
آرایه ها نظیر متغیرها می بایست با استفاده از کلید واژه Dim تعریف گردند . تعریف یک آرایه مستلزم تعریف یک پارامتر اضافی دیگر به منظور مشخص نمودن اندازه آن است . دستور زیر یک آرایه با اندازه پنجاه و از نوع String  را تعریف می نماید . تمامی المان های آرایه می بایست از نوع String باشند .

Dim  Strarray1 (49) As String

آرایه های چند بعدی
در مواردی که اطلاعات دارای ماهیتی دوبعدی و مرتبط به هم می باشند ، می توان از یک آرایه دوبعدی به منظور ذخیره آنان استفاده نمود . مثلا” در صورتی که قصد ذخیره مجموعه ای از اطلاعات مرتبط به هم  نظیر نام و نام خانوادگی را داشته باشیم ، می توان از یک آرایه دوبعدی استفاده نمود. به منظور تعریف یک آرایه دو بعدی می بایست یک پارامتر دیگر را در زمان تعریف آرایه نیز مشخص نمائیم . دستورات زیر نحوه تعریف و مقداردهی  یک آرایه دو بعدی ۴ * ۴ از نوع  string را نشان می دهد ( امکان ذخیره حداکثر شانزده عنصر در این آرایه وجود خواهد داشت ) .

Dim  strArray1 (3,3) As String
 …

strArray (0,0)  = “AAA”

strArray (0,1)  = “BBB”

 …

در VB.NET امکان تعریف یک آرایه حداکثر شصت بعدی وجود خواهد داشت . استفاده از آرایه های بیش از سه بعد توصیه نشده و در صورت نیاز می توان از سایر راهکاری موجود نظیر بانک های اطلاعاتی ، استفاده نمود .

خلاصه

در مجموعه مقالاتی که با عنوان ” نحوه ذخیره سازی اطلاعات در VB.NET ” ، ارائه گردید با موارد زیر آشنا شدیم :

  • جایگاه استفاده از متغیرها در یک برنامه
  • نحوه تعریف متغیر در VB.NET  و استفاده از آنان در صفحات ASP.NET
  • بررسی انواع نوع های داده ساده
  • نحوه انجام عملیات  بر روی متغیرها و انجام برخی محاسبات ساده با استفاده از عملگرهای محاسباتی و مقایسه ای
  • بررسی نوع های داده ساختیافته و نحوه استفاده از یک آرایه در برنامه

ساختارهای کنترلی  در VB.NET ( بخش اول )

در زمان نوشتن یک برنامه کامپیوتری با استفاده از هر زبان برنامه نویسی نظیر VB.NET  می توان از ساختارهای متفاوتی به منظور کنترل روند اجرای کدها ، استفاده نمود .  ساختارهای فوق  را می توان به سه گروه عمده تقسیم نمود :

  • ساختارهای تصمیم گیری ( اتخاذ تصمیم در خصوص اجراء و یا عدم اجرای خط و یا خطوطی از برنامه )
  • ساختارهای تکرار  ( اجرای یک و یا مجموعه ای  کد به دفعات مورد نیاز )
  • ساختارهای پرش ( توقف روند جاری اجرای یک برنامه  و پرش به یک محل و اجرای یک بلاک کد خاص )

در مجموعه مقالاتی که در این رابطه ارائه خواهد شد به بررسی هر یک از ساختارهای فوق در VB.NET  و نحوه استفاده از آنان به منظور ایجاد صفحات ASP.NET خواهیم پرداخت .

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

اسکریپت های ویژوال بیسیک
یک برنامه ویژوال بیسیک از مجموعه ای دستورات ( کدهائی با یک گرامر خاص مربوط به یک زبان ) که باعث انجام پردازش های لازم به منظور تولید اطلاعات می شود ، تشکیل می گردد . دستورات و یا عبارات فوق با یک اولویت منطقی سازماندهی می گردند تا کامپیوتر را  قادر به انجام پردازش های لازم به صورت مرحله به مرحله و بر اساس یک نظم خاص نمایند . در برنامه های وب ، از عبارات ویژوال بیسیک با نام اسکریپت یاد می شود .

کدهای ویژوال بیسیک را می توان از لحاظ فیزیکی در دو مکان متفاوت مستقر نمود : کدهای همراه صفحات وب  و یا کدهائی که در یک فایل جداگانه مستقر و امکان دستیابی آنان از طریق صفحاب وب وجود خواهد داشت . صرفنظر از مکانی که کدها مستقر خواهند شد ، اسکریپت های ویژوال بیسیک ، به منزله روتین هائی می باشند که می توان از آنان به منظور انجام پردازش های موردنیاز و تولید نتایج به منظور نمایش بر روی صفحه ، استفاده نمود .

بلاک های اسکریپت
زمانی که کدهای ویژوال بیسیک همراه یک صفحه وب آورده می شوند ، می بایست توسط یک بلاک اسکریپت ، مشخص گردند . یک بلاک اسکریپت ، بخشی از یک صفحه است که توسط تگ <script > و با فرمت زیر مشخص می گردد :

<script runat=”server” [language=”vb|Visual Basic”] >

…Visual Basic code

</script>

خصلت runat=server ، نشاندهنده این موضوع است که اسکریپت های نوشته شده می بایست توسط کامپیوتر سرویس دهنده وب وقبل از ارسال صفحه برای کامپیوتر سرویس گیرنده ، اجراء گردند. خصلت فوق ، همچنین بین اسکریپت های سرویس دهنده و اسکریپت های سرویس گیرنده و یا مرورگر ، تفاوت قائل می شود ( اسکریپت های سمت سرویس گیرنده معمولا” با استفاده از جاوااسکریپت نوشته می گردند ) .

خصلت Language ، زبان استفاده شده به منظور نوشتن اسکریپت ها را مشخص می نماید . با توجه به این که ویژوال بیسیک زبان پیش فرض برای نوشتن اسکریپت های سمت سرویس دهنده می باشد ، استفاده از خصلت فوق می تواند اختیاری باشد ( در صورتی که از زبان ویژوال بیسیک برای نوشتن اسکریپت ها استفاده می نمائیم ) .

یک بلاک اسکریپت را می توان در هر محلی از صفحه وب مستقر و در صورت نیاز از چندین بلاک اسکریپت استفاده نمود. (در اغلب موارد یک بلاک اسکریپت کفایت خواهد کرد). در اکثر موارد ، ترجیج داده می شود که اسکریپت ها در ابتدای صفحه مستقر گردند ( قبل از هر کد HTML ) . علت استقرار اسکریپت ها در ابتدای صفحه ، تشخیص این موضوع است که سرویس دهنده در ابتدا اسکریپت ها را اجراء خواهد کرد ( قبل از انجام هر گونه عملیات مرتبط با عناصر موجود بر روی یک صفحه وب ) .

برنامه های جانبی
یک بلاک اسکریپت ، مکانی است که تمامی عبارات ویژوال بیسیک موجود بر روی یک صفحه را در خود نگهداری می نماید . اکثر عبارات می بایست درون ساختارهای برنامه نویسی خاصی مستقر تا امکان اجرای صحیح آنان فراهم گردد . این ساختارها ، دارای یک نام می باشند که با فراخوانی آنان ،  تمامی دستورات موجود در ساختار به منظور انجام  پردازش های مورد نیاز ، فعال می گردند . متداولترین ساختار در این رابطه ، برنامه های جانبی می باشند :

<script runat=”server”>

Sub Page_Load

…Visual Basic statements

End Sub

</script>

مروری بر ساختارهای شرطی
در ساختارهای شرطی  ، در ابتدا یک و یا چندین شرط بررسی و بر اساس نتایج بدست آمده ، یک و یا چندین کد اجراء و از اجرای سایر خطوط صرفنظر خواهد شد .به منظور آشنائی با نحوه عملکرد این نوع ساختارهای کنترلی به بررسی یک نمونه در دنیای واقعی می پردازیم . فرض کنید در اتومبیل خود نشسته و در حال رانندگی می باشید . در طول مسیر با چراغ های راهنمائی متعددی برخورد می نمائید . در صورتی که چراغ قرمز باشد ، می بایست اتومبیل خود را متوقف نموده و در انتظار سبز شدن چراغ راهنمائی بمانید . در صورت سبز بودن ( شدن )  چراغ ، می توان بلافاصله به رانندگی خود ادامه داد . نوع عملیاتی که می بایست انجام داده مستقیما” متاثر از نتیجه بررسی انجام شده ، می باشد . ( در این مورد خاص رنگ چراغ راهنمائی ) .

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

  • IfThen …Else : از ساختار فوق به منظور اجرای یک و یا چندین مجموعه خط کد پس از بررسی یک  و یا چندین شرط ، استفاده می گردد . مثلا” فرض کنید در یک صفحه وب که مسئولیت نمایش اخبار را برعهده دارد ، قصد داشته باشیم در خصوص نمایش اخبار بین المللی و یا ورزشی ، اتخاذ تصمیم نمائیم . از ساختار If …Then می توان به منظور انتخاب عباراتی به منظور اجراء که ماحصل مقایسه های پیچیده ای  نظیر عباراتی که از عملگرهای AND ,OR و یا NOT ، می باشند ، استفاده نمود .
  • Select Case : از ساختار فوق به منظور اجرای یک و یا چندین مجموعه خط با توجه به وجود حالات متفاوتی که یک متغیر می تواند داشته باشد ، استفاده می گردد . مثلا” در یک صفحه وب که مسئولیت نمایش اخبار را برعهده دارد ، می توان از چندین آیکون که نشاندهنده نوع اخبار می باشند ، استفاده نمود . پس از کلیک نمودن کاربر بر روی هر یک از آیکون ها ، اخبار مربوط به آن گروه خاص  نمایش داده می شود (سیاسی ، تجاری ، ورزشی و یا اخبار مربوط به تکنولوژی) .

مروری بر ساختارهای تکرار
با استفاده از ساختارهای تکرار امکان اجرای مجموعه ای از خطوط ( کدها)  به دفعات مورد نیاز ، فراهم می گردد .

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

  •  For…Next : از ساختار فوق به منظور تکرار خط و یا مجموعه ای از خطوط استفاده می گردد . در این ساختار ، در ابتدا نسبت به دفعاتی که می بایست کدهای مورد نظر تکرار گردند ، شناخت لازم وجود دارد . برای مشخص نمودن دفعاتی که می بایست دستورات تکرار گردند ، می توان از توابع متفاوتی نظیر Sizeof استفاده نمود .
  • Do While : از ساختار فوق به منظور تکرار خط و یا مجموعه ای از خطوط در مواردی که در زمان طراحی نسبت به دفعاتی که می بایست دستورات اجراء گردند ، آگاهی لازم وجود ندارد ، استفاده می گردد. در چنین مواردی لازم است که در ساختار تکرار نسبت به ادامه تکرار دستورات ، اتخاذ تصمیم شود . بدین منظور شرط و یا شروط خاصی بررسی و مادامیکه نتیجه مثبت ( درست ) باشد ، دستورات تکرار می گردند .
  •  FoEach : از ساختار فوق به عنوان گزینه ای مناسبتر  نسبت به For…Next در مواردی که  دارای مجموعه ای  از آیتم ها می باشیم و نمی دانیم چند مرتبه می بایست  عملیات تکرار انجام شود ، استفاده می گردد .

مروری بر ساختارهای پرش
با استفاده از ساختارهای پرش ، برنامه نویسان می توانند اجرای کد جاری را متوقف نموده و به یک محل دیگر ( یک بلاک دیگر )پرش نمایند .  مثلا” می توانیم یک بلاک کد را با نام Showorder نوشته که مسئولیت نمایش مشخصات خریدار و کالاهای خریداری شده توسط وی را نمایش دهد . در صورتی که در طول برنامه لازم باشد به دفعات عملیات فوق را انجام دهیم ، ضرورتی به نوشتن مجدد کدها نخواهد بود . در چنین مواردی می توان  اجرای برنامه را در محل مورد نظر متوقف نموده و به روتین Showorder پرش نمود .  پس از اجرای مجموعه کدهای نوشته شده در روتین فوق ، مجددا” به محل فراخوانی روتین مراجعت و روند اجرائی برنامه دنبال می شود.

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

  • Subroutines : این نوع برنامه ها را می توان با فراخوانی نام آنان به خدمت گرفت . پس از فراخوانی هر روتین مجموعه کدهای موجود در آنان اجراء شده و در ادامه کنترل به دستور پس از محل فراخوانی روتین برمی گردد .
  • Function : عملکرد این نوع روتین ها مشابه Subroutine بوده و تنها تفاوت موجود ، برگرداندن یک مقدار به برنامه و یا محل فراخوانی تابع است .

ساختارهای  اشاره شده ، به منزله ستون فقرات هر برنامه ای  می باشند که  با ASP.NET نوشته می گردد .

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

مثال یک  :
خواسته می خواهیم در خصوص نمایش صفحه A و یا صفحه B اتخاذ تصمیم نمائیم .
راه حل استفاده از ساختار تصمیم گیری
علت ؟ ما صرفا” می خواهیم یکی از دو احتمال موجود را بررسی نمائیم  .

 

مثال دوم :   
خواسته  نمایش لیست اعضای یک کلوپ شامل نام ، نام خانوادگی ، آدرس و سایر اطلاعات ذیربط
راه حل استفاده از ساختار تکرار
علت ؟ ما نیازمند اجرای مجموعه کد مشابهی ( بازیابی اطلاعات مربوط به هر یک از اعضاء )  به دفعات مشخص می باشیم . ( تکرار برای هر یک از اعضاء تا زمانیکه لیست تمامی اعضاء نمایش داده شود . )

 

مثال سوم   
خواسته  نمایش داده در یک جدول
راه حل  ساختار تکرار
علت ؟  ما نیازمند اجرای کد مشابهی ( ایجاد یک سطر در جدول ) به منظور ایجاد تمامی سطرهای مورد نیاز می باشیم .

 

مثال چهارم :
خواسته  پس از استقرار یک آیتم که در صفحه مشخصات کالا تشریح شده است ، قصد داریم چندین خط اطلاعات در رابطه با نحوه ثبت سفارش را اضافه نمائیم . ممکن است ما دارای چندین آیتم می باشیم که در صفحات متعددی نمایش داده می شوند و لازم است که اطلاعات مربوط به نحوه ثبت سفارش برای هر یک از آنان نیز نمایش داده شود .
راه حل  استفاده از یک Subroutine
علت ؟  ما نیازمند توقف روند اجرای کد اصلی و اجرای کدهای لازم به منظور نحوه تشریح ثبت سفارش ، می باشیم . با توجه به این که مجموعه خطوط لازم به منظور نمایش “نحوه ثبت سفارش ” ، می بایست چندین مرتبه اجراء گردند ، بهتر است که آنان را یک مرتبه نوشته و به دفعات مورد نیاز فراخوانده شوند.

 

مثال پنچم :
خواسته فرض کنید در یک برنامه لازم است که قیمت یک کالا که توسط کاربر انتخاب می گردد ، محاسبه و در چندین محل بر روی یک صفحه ، نمایش داده شود .
راه حل  استفاده از یک تابع
علت ؟ ما نیازمند توقف روند اجرای صفحه  و پرش به محلی  می باشیم که کدهای مورد نظر به منظور محاسبه قیمت یک کالا را شامل می شود . پس از اجرای کدهای مورد نظر ، مجددا” به صفحه اولیه مراجعه می گردد . با توجه به این که لازم است چندین مرتبه قیمت یک کالا ، محاسبه گردد ، بهتر است که فورمول لازم برای محاسبه قیمت را یک مرتبه نوشته و آن را به دفعات مورد نیاز فراخواند .

در بخش دوم این مقاله به بررسی ساختارهای تصمیم گیری ، خواهیم پرداخت .

ساختارهای کنترلی  در VB.NET ( بخش دوم )

در بخش اول این مقاله با اسکریپت های ویژوال بیسیک و ساختارهای کنترلی در VB.NET به صورت اجمالی آشنا شدیم . در بخش دوم به بررسی ساختارهای تصمیم گیری ، خواهیم پرداخت .

همانگونه که قبلا” اشاره گردید ، با استفاده از ساختارهای تصمیم گیری ، یک و یا چندین شرط بررسی و بر اساس نتایج بدست آمده ، دستور و یا دستوراتی اجراء و یا از اجرای دستور و یا دستوراتی صرفنظر می گردد . در VB.NET از دو روش متفاوت  در این رابطه استفاده می گردد : 

  • IfThen : تعداد مسیرهائی را که می توان پس از بررسی یک عبارت شرطی انتخاب نمود ، اندک است  .
  • Select Case :تعداد مسیرهائی را که می توان پس از بررسی یک عبارت شرطی انتخاب نمود ، زیاد است  . 

مثلا” در صورتی که در یک برنامه قصد طرح این پرسش از کاربران را  داریم که :  ” آیا می خواهید قرار ملاقات خود را از طریق تلفن ، نهائی نمائید ؟”قطعا” پاسخ به سوال فوق دو گزینه بیشتر نخواهد داشت (  پاسخ مثبت ( True ) و منفی ( False ) ) . بنابراین می توان در چنین مواردی از ساختار If…Then استفاده نمود . ولی در صورتی که از کا ربر پرسش شود که : ” آیا می خواهید قرار ملاقات خود  را از طریق تلفن ، فاکس و یا  Email ، نهائی نمائید ؟” ، با توجه به تعداد گزینه های موجود ، ترجیح داده می شود که از ساختار Select Case استفاده شود .

قبل از پرداختن با جزئیات نحوه استفاده از ساختارهای فوق ، لازم است با برخی عملگرها که از آنان به منظور ایجاد عبارات شرطی استفاده می شود،بیشتر آشنا شویم .

عملگرهای مقایسه ای
عملگرهای مقایسه ای در VV.NET عبارتند از :

کاربرد عملگر
 مساوی  =
 کوچکتر از
کوچکتر یا مساوی  =>
 نامساوی <> 
 بزرگتر
 بزرگتر یا مساوی  =>

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

مثال کاربرد عملگر
  If  A=1 AND B=2 Then   در صورت درست بودن تمامی عملوندها ، شرط مورد نظر ارزش درست را پیدا خواهد کرد .   AND
If  A=1 OR  B=2 Then  درصورت درست بودن یکی از عملوندها ، شرط مورد نظر ارزش درست را پیدا خواهد کرد OR
If  NOT A=1 Then مقدار مخالف شرط را بر می گرداند . در صورتی که شرط مورد نظر ارزش درست را داشته باشد ، NOT آن مقدار نادرست را برمی گرداند .  NOT

اولویت عملگرهای فوق به ترتیب OR,AND,NOT می باشد .

ساختار If…Then  

ساختار فوق دارای چهار بخش اساسی است :

  • یک عبارت که شامل یک و یا چندین شرط است که ماحصل آن True و یا False خواهد بود .
  • کد لازم  در صورتی که نتیجه عبارت شرطی ، درست باشد .
  • کد لازم در صورتی که نتیجه عبارت شرطی نادرست باشد ( اختیاری )
  • یک عبارت که نشاندهنده پایان ساختار است .

برای ایجاد ساختار If…Then ازروش های متفاوتی استفاده می گردد . برای انتخاب گرامر مناسب می بایست به دو سوال فوق پاسخ داده شود  :

  • در مواردی که  نتیجه عبارت شرطی  False  گردد ، قصد انجام کار( و یا کارهای )  خاصی را دارید ؟ 
  • در صورتی که نتیجه عبارت شرطی درست باشد ، قصد اجرای بیش از یک دستور را دارید ؟

If..Then : ساده ترین روش استفاده ازساختار تصمیم گیری است . در صورت استفاده از ساختار فوق و در مواردی که نتیجه عبارت شرطی نادرست ( False ) باشد ، نمی توان دستور ویا دستوراتی را اجراء نمود .

 If  A=1 Then TestMessage.Text = ” نتیجه عبارت شرطی ، درست است “

در صورتی که قصد داشته باشیم پس از بررسی  عبارت شرطی و درست بودن آن بیش از یک دستور را اجراء نمائیم ، می بایست پس از درج دستورات مورد نظر ، از یک End If در قسمت پایانی دستورات ،  استفاده نمائیم .

If  A=1 Then
      TestMessage.Text = ” در صورت درست بودن شرط ، دو دستور اجراء می گردد “

       B = 2

End If

If…Then…Else : از ساختار فوق در مواردی که قصد داشته باشیم پس ازبررسی عبارت شرطی و با توجه به نتیجه آن ( درست و یا نادرست ) دستورات خاصی را اجراء نمائیم ، استفاده می شود . 

If  A=1 Then
      TestMessage.Text = ” در صورت درست بودن شرط ، اجراء می گردد”

Else

      TestMessage.Text = ” در صورت نادرست بودن شرط ، اجراء می گردد” 

End If

If…Then …ElseIf  : با این که استفاده از ساختار فوق به منظور تصمیم گیری بندرت انجام می شود ، ولی در موارد خاصی لازم است که از این ساختار استفاده شود. با استفاده از ساختار فوق می توان عبارات شرطی متفاوتی را با یکدیگر ترکیب و بر اساس نتایج بدست آمده ، دستور و یا دستورات خاصی را با توجه به وضعیت بوجود آمده ، اجراء نمود .  بدین منظور لازم است که هر یک از حالات موجود را با استفاده از ElseIf  از یکدیگر جدا نموده و در نهایت تمامی ساختار را با استفاده از End If  به پایان رساند .

If  A=1 Then
      TestMessage.Text = ” A=1″ 

ElseIf  A=2 Then

      TestMessage.Text = ” A=2 ” 

ElseIf  A=3 Then

      TestMessage.Text = ” A=3 ” 

End If

مثال : نحوه استفاده از ساختار If…Then
در این مثال کامپیوتر عددی را به صورت تصادفی تولید نموده و از شما درخواست می شود که این عدد را تشخیص دهید  .

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

 <script language=”vb” runat=”server”>
Sub Page_Load()

Dim theNumber As Integer

Dim theGuess As Integer

theNumber = int(10 * rnd) + 1

If Page.IsPostBack Then

   theGuess = Guess.SelectedItem.Valu

  If theGuess > theNumber then

    Message.Text = “<BR><BR>شما عدد بزرگتری را تشخیص داده اید <BR>عدد مورد نظر ” &_

     “<B>” & theNumber & ” </B>” & ” می باشد “

  End If

   If theGuess < theNumber then

     Message.Text = “<BR><BR>شما عدد کوچکتری را تشخیص داده اید <BR>عدد مورد نظر ” &_

      “<B>” & theNumber & ” </B>” & ” می باشد “

  End If

  If theGuess = theNumber then

    Message.Text = “<BR><BR>حدس شما صحیح است”

  End If

End If

End Sub

</script>

<html dir=rtl>

<head></head>

<body>

<form runat=”server”> چه عددی را بخاطر سپرده ام ؟

  <asp:dropdownlist id=”Guess” runat=”server”>

    <asp:listitem>1</asp:listitem>

    <asp:listitem>2</asp:listitem>

    <asp:listitem>3</asp:listitem>

    <asp:listitem>4</asp:listitem>

    <asp:listitem>5</asp:listitem>

    <asp:listitem>6</asp:listitem>

    <asp:listitem>7</asp:listitem>

    <asp:listitem>8</asp:listitem>

    <asp:listitem>9</asp:listitem>

    <asp:listitem>10</asp:listitem>

</asp:dropdownlist><br><br>

  <input type=”submit” value=”تشخیص عدد”>

   <asp:label id=”message” runat=”server”/>

</form></body></html>

 مرحله دوم :  پس از ذخیره کد فوق در فایلی با نام ifthen.aspx و مشاهده آن در مرورگر ، خروجی زیر را خواهیم داشت :

مرحله سوم : انتخاب عدد مورد نظر و کلیک بر روی دکمه “تشخیص عدد “

توضیحات :

  • با استفاده از کنترل <asp:dropdownlist> که اعداد یک تا ده را نمایش می دهد از کاربر خواسته ایم که عددی را انتخاب نماید .
  • در کد نوشته شده دو متغیر به اسامی theNumber و theGuess تعریف که از آنان به منظور ذخیره عدد تولید شده تصادفی  و عدد حدس زده شده توسط کاربر استفاده می گردد .
  • برای تولید اعداد تصادفی از تابع ()rnd استفاده شده است. تابع فوق ، یک عدد اعشاری بین صفر و یک را تولید می نماید . برای داشتن یک عدد تصادفی بین یک تا ده ، می بایست عدد تولید شده  را در ده ضرب نمود . بدین ترتیب یک عدد بین صفر تا ده تولید می شود .
  • با استفاده از ساختار If…Then بررسی لازم در خصوص عدد انتخاب شده توسط کاربر و مقایسه آن با  عدد تصادفی تولید شده انجام و بر اساس آن پیام مناسبی  به کاربر ارائه خواهد شد .

ساختار Select Cast
یکی از چالش های استفاده از ساختار If…Then در مواردی است که قصد داشته باشیم  تعداد سه و یا بیش از سه وضعیت را بکمک آن مقایسه نمائیم . مثلا” در صورتی که بخواهیم یک کاربر را بر اساس انتخاب انجام شده به شش صفحه وب مجزاء هدایت نمائیم ، استفاده از ساختار If…then علاوه بر این که کد برنامه را ناخوانا خواهد کرد ، سرعت اجرای کد نوشته شده نیز کندتر می گردد. در چنین مواردی می توان از ساختار Select Case استفاده نمود .

مثال : نحوه استفاده از ساختار Select Case

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

<script language=”vb” runat=”server”>
  Sub Page_Load()

     If Page.IsPostBack Then

     Select Case(Destination.SelectedItem.Value)

       Case “تهران”:

          Message.Text = “شما شهرستان تهران را برای مسافرت انتخاب نموده اید”

       Case “اهواز”:

          Message.Text = “شما شهرستان اهواز را برای مسافرت انتخاب نموده اید”

       Case “شیراز”:

         Message.Text = “شما شهرستان شیراز را برای مسافرت انتخاب نموده اید”

      Case else

        Message.Text = “شما شهرستان مورد نظر را انتخاب ننموده اید”

    End Select

  End If

End Sub

</script>

<html dir=rtl>

<head></head>

<body>

  <form runat=”server”>

    کدام شهرستان را برای مسافرت انتخاب می نمائید ؟ <br><br>

    <asp:radiobuttonlist id=”destination” runat=”server”>

      <asp:listitem>تهران</asp:listitem>

      <asp:listitem>اهواز</asp:listitem>

      <asp:listitem>شیراز</asp:listitem>

   </asp:radiobuttonlist><br><br>

   <input type=”submit” value=”ارسال درخواست”><br><br>

  <asp:label id=”message” runat=”server”/>

</form>

</body>

</html>

 مرحله دوم :  پس از ذخیره کد فوق در فایلی با نام selectcase.aspx و مشاهده آن در مرورگر ، خروجی زیر را خواهیم داشت :

مرحله سوم : انتخاب گزینه  مورد نظر و کلیک بر روی دکمه ” ارسال درخواست “

توضیحات :

  • با استفاده از کنترل <asp:radiobuttonlist> ، مجموعه ای از گزینه ها ارائه شده است .
  • با استفاده از ساختار Select Case بررسی لازم در خصوص گزینه انتخاب شده توسط کاربر انجام و متناسب با آن پیام خاصی در کنترل lablel نمایش داده می شود .
  • در صورتی که به هر دلیلی یکی از گزینه های ارائه شده،  انتخاب نشود و یا خطای خاصی اتفاق افتاده باشد که داده انتخابی با هیچیک از موارد ذکر شده در ساختار Select Case مطابقت ننماید ، بخش Case else ساختار Select Case انتخاب و دستورات موجود در این بخش اجراء خواهند شد .

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

ساختارهای کنترلی  در VB.NET ( بخش سوم )

 آنچه تاکنون گفته شده است :
  • بخش اول : بررسی اجمالی ساختارهای کنترلی در VB.NET
  • بخش دوم : بررسی ساختارهای تصمیم گیری

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

VB.NET دارای چندین ساختار تکرار است :

  • For…Next
  • Do…While
  • Do…Until
  • For…Each

در اغلب موارد صرفا” از دو ساختار فوق ، استفاده می گردد . Do…While و Do…Until دارای عملکردی مشابه با یک تفاوت اساسی می باشند. از ساختار For…Each در زمان کار با آرایه ها و یا  Collections ، استفاده می شود. ( Collection یک شی است که خود شامل اشیاء دیگری است ) .

ساختار For…Next
ساختار فوق دارای سه بخش اساسی است :

  • بخش اول ، خطی است که مسئولیت مشخص نمودن تعداد دفعات اجرای حلقه تکرار را برعهده دارد . 
  • بخش دوم ، مجموعه دستوراتی که می بایست تکرار گردند را مشخص می نماید .
  • بخش سوم ، خطی است که انتهای حلقه تکرار را مشخص خواهد کرد.

شکل عمومی ساختار For…Next :

For   LoopCounter = StartValue To EndValue
     ….. دستورات تکرارشونده  ….

Next LoopCounter

مثال زیر نحوه استفاده از ساختار For…Next را نشان می دهد :

For   intCounter = 1 To 5
    Message1.Text = Message.Text1 & ” Test Looping Structures ” & “<br/>”

Next  intCounter

از ساختار For…Next در مواردی که تعداد دفعات اجرای حلقه تکرار از قبل مشخص است ، استفاده می گردد .

مثال : نحوه استفاده از ساختار For…Next
در این مثال با ارائه یک DropDownlist و بر اساس انتخاب کاربر ، یک دستورالعمل  تکرار می گردد .

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

 <script language=”vb” runat=”server”>
Sub Page_load()

  Dim number As Integer

  Dim counter As Integer

  If Page.IsPostBack then

    number = numberSelection.SelectedItem.value

    Message1.Text = “”

  For counter = 1 to number

    Message1.Text = Message1.Text & ” نحوه استفاده از ساختار تکرار ” & “<br/>”

  Next counter

 End If

End Sub

</script>

<html dir=rtl>

<head>

<title>Loop Example</title>

</head>

<body>

<form runat=”server”>

لطفا” یک عدد را انتخاب نمائید : <br><br>

<asp:dropdownlist id=”numberSelection” runat=”server”>

   <asp:listitem >1</asp:listitem>

   <asp:listitem>2</asp:listitem>

   <asp:listitem>3</asp:listitem>

   <asp:listitem>4</asp:listitem>

   <asp:listitem>5</asp:listitem>

</asp:dropdownlist>

<br><br>

<input type=”Submit” Value=”ارسال درخواست”><br><br>

<asp:label id=”message1″ runat=”server”/>

</form>

</body>

</html>

 مرحله دوم :  پس از ذخیره کد فوق در فایلی با نام ForLoop.aspx و مشاهده آن در مرورگر ، خروجی زیر را خواهیم داشت :

مرحله سوم : انتخاب عدد مورد نظر و کلیک بر روی دکمه “ارسال درخواست “

ساختار Do…While
از ساختار فوق در مواردی استفاه می گردد  که نسبت به تعداد دفعاتی که می بایست فرآیند تکرار انجام شود ، شناخت اولیه ای وجود نداشته باشد .در ابتدا عبارت شرطی بررسی و در صورتی که ارزش آن TRUE باشد ، حلقه تکرار خواهد شد.

شکل عمومی ساختار Do…While :

ِDo While  Expression test
     ….. دستورات تکرارشونده  ….

Loop 

ساختار Do…Until
همانگونه که در ساختار Do…While مشاهده گردید ، عبارت شرطی در ابتدای حلقه قرار گرفته و پس از بررسی و در صورت درست بودن ، دستورات موجود در حلقه اجراء خواهند شد . با استفاده از ساختار Do…Until می توان عملیات بررسی شرط را در انتهای حلقه و پس از یک بار اجرای قطعی دستورات تکرار شونده ، انجام داد.

شکل عمومی  ساختار Do…Until :

ِDo While  
     ….. دستورات تکرارشونده  ….

Loop  Until  Expression test

ساختار For…Each
ساختار فوق دارای عملکردی مشابه For…Next می باشد. با این تفاوت که از آن  به منظور انجام عملیات مورد نظر در ارتباط با  هر یک از عناصر درون یک آرایه و یا یک Collection استفاده می گردد .

مثال : نحوه استفاده از ساختار For…Each 
در این مثال پس از تعریف یک آرایه و نسبت دهی مقدار به هر یک از عناصر آن ، با  استفاده از For …Each محتویات هر یک از عناصر آرایه در خروجی نمایش داده می شود.

 <script language=”vb” runat=”server”>
Sub Page_load()

   Dim Item As String

   Dim StrArticles(2) As String

   StrArticles(0) = ” ساختارهای کنترلی – بخش اول ”

   StrArticles(1) = ” ساختارهای کنترلی – بخش دوم ”

   StrArticles(2) = ” ساختارهای کنترلی – بخش سوم ”

  For Each Item In StrArticles

       Message.Text = Message.Text & Item & “<BR>”

Next

End Sub

</script>

<html dir=rtl>

<head>

<title>Loop Example</title>

</head>

<body>

<form runat=”server”>

<asp:label id=”message” runat=”server”/>

</form>

</body>

</html>

 مرحله دوم :  پس از ذخیره کد فوق در فایلی با نام ForEach.aspx و مشاهده آن در مرورگر ، خروجی زیر را خواهیم داشت :

در بخش چهارم به بررسی ساختارهای پرش ، خواهیم پرداخت .

دستیابی به بانک اطلاعاتی Access با استفاده از VB.NET
در این مقاله قصد داریم به نحوه  بازیابی و نمایش اطلاعات موجود در یک بانک اطلاعاتی Access اشاره نمائیم . هدف از مقاله فوق ، پرداختن به تمامی رویکردهای موجود در این زمینه نبوده و صرفا” به معرفی یکی از گزینه های موجود در این زمینه اشاره خواهد شد. در این راستا از تکنولوژی های ASP.NET ، ADO.NET و VB.NET استفاده خواهد شد . از کلاس های  OleDbConnection ، OleDbCommand و OleDbDataReader  مربوط به  ADO.NET  بمنظور انجام عملیات لازم در ارتباط با بانک اطلاعاتی ، از ASP.NET بمنظور ایجاد فرم وب و ارائه داده با استفاده از کنترل سرویس دهنده Table و از زبان VB.NET بمنظور نوشتن دستورالعمل های مورد نظر استفاده می گردد .

در ابتدا لازم است با سه کلاس ADO.NET که در ادامه از آنان استفاده خواهد شد ، بیشتر آشنا شویم :

  • کلاس OleDbConnection . شی فوق ، یک اتصال منحصر بفرد با یک منبع داده را  ایجاد می نماید. در رابطه با یک بانک اطلاعاتی سرویس گیرنده / سرویس دهنده ، این امر معادل یک اتصال شبکه به سرویس دهنده است . با توجه به قابلیت های حمایت شده توسط native OLE DB Provider ، برخی از متدها و یا خصلت ها مربوط به شی OleDbConnection ممکن است در دسترس و قابل استفاده نباشد . زمانیکه نمونه ای  از OleDbConnection ایجاد می گردد ، تمامی خصلت های مربوطه ، مقدار اولیه خود را دارا خواهند بود . پس از اتمام عملیات موردنظر در ارتباط با بانک اطلاعاتی ،  می بایست با فراخوانی Close و یا Dispose اقدام به  غیر فعال نمودن  اتصال ایجاد شده با بانک اطلاعاتی مربوطه نمود.
  • کلاس OleDbCommand .  یک عبارت SQL و یا Stored procedure را بمنظور اجراء در رابطه با یک منبع داده ارائه می نماید. کلاس فوق از متدهای زیر بمنظور اجرای دستورات در رابطه با یک منبع داده استفاده می نماید.
     ExecuteReader  . متد فوق ، دستوراتی را اجراء می نماید که خروجی آنان شامل سطرهائی خواهد بود.

     ExecuteNonQuery . باعث اجرای دستوراتی نظیر SQL INSERT,DELETE,UPDATE و SET خواهد شد .

     ExecuteScalar  . بازیابی صرفا” یک مقدار از یک بانک اطلاعاتی

  • کلاس OleDbDataReader . متد فوق ، امکان خواندن سطرهائی از داده موجود در یک منبع داده را فراهم می نماید( فقط بسمت جلو)  . بمنظور ایجاد یک OleDbDataReader ، می بایست متد ExecuteReader مربوط به شی OleDbCommand فراخوانده شود. مادامیکه OleDbDataReader در حال استفاده است (اتصال مرتبط OleDbConnection ) ، عملیات دیگری را در ارتباط با OleDbConnection  نمی توان انجام داد .

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

  • نصب یکی از نسخه های ویندوز ۲۰۰۰ و یا نسخه ویندوز ۲۰۰۳
  • نصب IIS 
  •  نصب فریمورک دات نت نسخه ۱٫۰ ,یا نسخه ۱٫۱
  • یک بانک اطلاعاتی نمونه اکسس نظیر Northwind

ایجاد یک برنامه وب ASP.NET با استفاده از VB.NET
بمنظور ایجاد یک برنامه وب ASP.NET با استفاده از VB.NET مراحل زیر را دنبال می نمائیم :

  •  اجرای برنامه ویژوال استودیو دات نت
  • از طریق منوی File ، گزینه New و در ادامه Project را انتخاب نمائید .
  •  در جعبه محاوره ای New Project ، در بخش Project Types گزینه Visual Bacic Projects را انتخاب ( کلیک ) و در ادامه ASP.NET Web Application  را انتخاب نمائید .  
  •  در فیلد Location ، بجای نام پیش فرض #WebApplication ، نام TestAccessDB را انتخاب نمائید . در صورتیکه از یک سرویس دهنده محلی استفاده میگردد ، می توان  نام سرویس دهنده را http://localhost در نظر گرفت . بدین ترتیب در فیلد Location ، آدرس مربوطه بصورت زیر نشان داده خواهد شد : http://localhost/TestAccessDB

ایجاد یک فرم وب نمونه 
در نمونه کد نوشته شده از کنترل سرویس دهنده Table مربوط به ASP.NET استفاده شده که بصورت پویا یک نمایش ساده از داده بازیابی شده را نشان خواهد داد. ASP.NET ، مجموعه متنوعی از کنترل های انعطاف پذیر را ارائه که می توان از آنان با توجه به رویکردهای متفاوت در رابطه با نمایش داده استفاده نمود. بمنظور ایجاد یک فرم وب در پروژه ایجاد شده در مرحله قبل ، مراحل زیر را دنبال می نمائیم :

  • اضافه نمودن یک فرم جدید با نام DataSample.aspx  به برنامه وب ASP.NET در ویژوال استودیو دات نت . بمنظور انجام خواسته فوق ، دو مرحله زیر را دنبال می نمائیم :
    مرحله یک : در Solution Explorer ، بر روی گره Project کلیک سمت راست نموده و گزینه Add  و در ادامه گزینه Add Web Form انتخاب گردد.

    مرحله دو : درفیلد Name ، نام DataSample.aspx را درج و در ادامه گزینه Open انتخاب گردد .

  • از طریق Toolbox مربوط به Web Forms Tab ، یک Table ASP.NET Server Control را انتخاب ( Drag ) و بر روی صفحه aspx . مستقر نمائید ( در حالت Desgin view ) .
  • در Properties نام ID را به DisplayTable تغییر دهید .
  • در Solution Explorer ، بر روی صفحه aspx . ، کلیک سمت راست نموده و گزینه View Code را انتخاب نمائید .
  •  مرجع namespace زیر را در بالاترین قسمت فایل کلاس code-behind وارد نمائید .

 

Imports System.Data.OleDb
  • کد زیر را در ارتباط با رویداد  Page_load در نظر می گیریم :
Page_Load Event handler
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

استفاده از یک متغیر رشته ای بمنظور ذخیره سازی Connectionstring’

  Dim connectString As String = “Provider=Microsoft.Jet.OLEDB.4.0;” &_

  “Data Source=C:\MyDB\NWIND.MDB”

ایجاد یک شی OleDbConnection و ارسال مقدار متغیر ConnectionString ‘

  Dim cn As OleDbConnection = New OleDbConnection(connectString)

فعال نمودن Connection’

  cn.Open()

استفاده از یک متغیر بمنظور ذخیره عبارت SQL’

  Dim selectString As String = “SELECT CustomerID, ContactName, Phone FROM Customers”

ایجاد یک شی OledbCommand’

در این خط متغیر عبارت SQL و شی OleDbConnection ، ارسال می گردد ‘

  Dim cmd As OleDbCommand = New OleDbCommand(selectString, cn)

ارسال CommandText به Connection و ایجاد یک OleDbDataReader ‘

OleDbDataReader  از نوع ” فقط بسمت جلو ” خواهد بود’

  Dim reader As OleDbDataReader = cmd.ExecuteReader()

تنظیم عرض جدول ‘

  DisplayTable.Width = Unit.Percentage(90.0)

ایجاد یک سطر جدید برای اضافه نمودن عنوان جدول’

  Dim tableHeading As TableRow = New TableRow()

ایجاد و اضافه نمودن سلول های  شامل ستون Customer ID  ‘

  Dim customerIDHeading As TableHeaderCell = New TableHeaderCell()

  customerIDHeading.Text = “Customer ID”

  customerIDHeading.HorizontalAlign = HorizontalAlign.Left

  tableHeading.Cells.Add(customerIDHeading)

ایجاد و اضافه نمودن سلول های  شامل ستون Contact Name   ‘

   Dim contactNameHeading As TableHeaderCell = New TableHeaderCell()

   contactNameHeading.Text = “Contact Name”

   contactNameHeading.HorizontalAlign = HorizontalAlign.Left

   tableHeading.Cells.Add(contactNameHeading)

ایجاد و اضافه نمودن سلول های  شامل ستون Phone   ‘

    Dim phoneHeading As TableHeaderCell = New TableHeaderCell()

    phoneHeading.Text = “Phone”

    phoneHeading.HorizontalAlign = HorizontalAlign.Left

    tableHeading.Cells.Add(phoneHeading)

    DisplayTable.Rows.Add(tableHeading)

تکرار در بین داده انتخابی نتایج و افزودن داده برای هر یک از ستون های مورد نظر در جدول ‘

    While(reader.Read())

       Dim detailsRow As TableRow = New TableRow()

       Dim customerIDCell As TableCell = New TableCell()

       customerIDCell.Text = reader(“CustomerID”).ToString()

       detailsRow.Cells.Add(customerIDCell)

       Dim contactNameCell As TableCell = New TableCell()

       contactNameCell.Text = reader(“ContactName”).ToString()

       detailsRow.Cells.Add(contactNameCell)

       Dim phoneCell As TableCell = New TableCell()

       phoneCell.Text = reader(“Phone”).ToString()

       detailsRow.Cells.Add(phoneCell)

       DisplayTable.Rows.Add(detailsRow)

    End While

بستن  Connection’

    reader.Close()

   cn.Close()

End Sub

  • مقدار متغیر ConnectString در ابتدای کد نوشته شده فوق را تغییر و آن را به محلی که بانک اطلاعاتی موجود است ، اشاره دهید .
  •  از طریق منوی File ، گزینه Save All را انتخاب تا فرم وب و سایر فایل های مرتبط با پروژه ، ذخیره گردد .
  • از طریق منوی Build ، گزینه Build Solution را بمنظور ایجاد پروژه ، فعال نمائید.
  • در Solution Explorer ، بر روی DataSample.aspx کلیک سمت راست و در ادامه گزینه View in Browser را انتخاب نمائید . در ادامه صفحه در مرورگر نمایش و شامل داده موجود در بانک اطلاعاتی مربوطه است .

اشکالات و خطاهای احتمالی
درزمان اجراء ، ممکن است با خطائی مانند زیر مواجه شویم :

The Microsoft Jet database engine cannot open the file ‘C:\MyDB\NWIND.MDB’.
 It is already opened exclusively by another user, or you need permission to view its data.
  • خطای فوق ، اغلب بدلیل عدم داشتن مجوز لازم بمنظور دستیابی به فایل ( فایل بانک اطلاعاتی با انشعاب mdb . ) می باشد . بصورت پیش فرض ،  ASP.NET تحت ASPNET account  در فریمورک دات نت نسخه یک و یا NetworkService  در فریمورک دات نت نسخه ۱،۱ اجراء می گردد.در این رابطه لازم است تغییرات لازم در رابطه با  مجوز دستیابی به فایل mdb . و فولدری که شامل فایل است ، اعمال گردد .
  • از نصب عناصر مورد نیاز Microsoft Jet database بر روی سیستم ، مطمئن گردید. در صورتیکه MDAC 2.6 نصب شده باشد ( Microsoft Data Access Components 2.6) ، عناصر Jet را شامل نمی گردد . در چنین مواردی می بایست آخرین نسخه Jet 4.0 Service Pack ، بر روی سیستم نصب گردد.

بررسی اعتبار داده ها  توسط VB.NET در  فرم های وب
فریمورک دات نت ، شامل مجموعه ای از کنترل های لازم بمنظور بررسی اعتبار و صحت  داده های ورودی است که با استفاده از آنان در  فرم های وب و ASP.NET  ، می توان  داده  ورودی توسط  کاربر در هر یک از  فیلدهای موجود بر روی یک فرم وب را بررسی و در صورت عدم رعایت شرایط لازم ، پیام خطاء مناسبی را ارائه نمود. در این مقاله  به  تشریح نحوه استفاده از کنترل های صحت داده ، خواهیم پرداخت .

کنترل های سرویس دهنده  اعتبار داده
کنترل های سرویس دهنده اعتبار داده  ، امکان بررسی صحت داده  مرتبط با یک کنترل سرویس دهنده ورودی نظیر یک TextBox را فراهم و در صورتیکه ماحصل بررسی بعمل آمده ، مثبت نباشد ، یک پیام خطاء نمایش داده خواهد شد. هر یک از کنترل های اعتبار داده ، عملیات خاصی را در ارتباط با بررسی صحت داده ها انجام خواهند داد . مثلا” می توان با استفاده از CompareValidator ، عملیات بررسی صحت داده ها را در ارتباط با یک مقدار خاص  انجام و یا با استفاده از کنترل RangeValidator  یک  محدوده قابل قبول از مقادیر مورد نظر در ارتباط با یک فیلد ورود اطلاعات  را انجام داد. در چنین مواردی ، حتی می توان با استفادده از کنترل CustomValidator ، شرایط خاص مورد نظر خود برای بررسی صحت داده ، تعریف و ایجاد نمود. با توجه به اینکه ، پیام خطاء در کنترل اعتبار داده نمایش داده می شود، می توان مکان مورد نظر برای نمایش پیام خطاء را نیز مشخص کرد . در این راستا ، همچنین می توان با استفاده از کنترل ValidationSummery  ، خلاصه ای از نتایج تمامی کنترل های بررسی صحت داده ها را نمایش داد .

عملیات بررسی صحت داده در یک صفحه زمانی محقق خواهد شد که یک کنترل Button نظیر Button,ImageButton و یا LinkButton کلیک گردد . در این رابطه می توان با مقدار دهی False به خصلت CausesValidation ، باعث ممانعت در رابطه با بررسی صحت داده گردید . روش فوق ، در مواردی نظیر فشردن یک دکمه Cancel و یا Clear استفاده می گردد ( در چنین مواردی عملا” ما قصد بررسی صحت داده را نخواهیم داشت ) . مقدار خصلت فوق ، بصورت پیش فرض در ارتباط با یک Button  از نوع Cancel  و یا Clear مقدار False در نظر گرفته خواهد شد . 

در نمونه مثالی که در ادامه تشریح و به بررسی آن خواهیم پرداخت از چهار کنترل اعتبار داده استفاده شده است که لازم است در ابتدا مختصرا” با عملکرد هر یک از آنان آشنا شویم .

  • RequiredFieldValidator . کنترل فوق ، مقدار یک کنترل ورودی را بمنظور حصول اطمینان از درج داده در فیلد مورد نظر توسط کاربر ، بررسی می نماید . در صورتیکه مقدار مشخص شده در فیلد مورد نظر نسبت به مقدار اولیه خود تغییر نکرده باشد ،بمنزله عدم صحت و اعتبار داده بوده و نشان دهنده این موضوع است که کاربر در فیلد مربوطه داده مورد نظر را وارد ننموده است . در حقیقت در چنین شرایطی الزامی برای درج داده در ارتباط با یک کنترل ورودی بوجود آمده و کاربر نمی تواند فیلد مربوطه را بدون اعمال تغییرات ( درج داده ) رها نموده و نسبت به آن بی تفاوت باشد . مقدار پیش فرض، یک رشته خالی ( “” ) بوده  و نشاندهنده این واقعیت است که می بایست مقداری در آن درج تا در آزمون بررسی صحت داده موفقیت حاصل گردد . در این رابطه فضاء خالی اضافه شده در ابتدا و انتهای کنترل ورودی حذف و در ادامه عملیات بررسی صحت داده انجام خواهد شد . بدین ترتیب از درج فضای خالی در کنترل ورودی برای بررسی صحت داده ممانعت بعمل می آید . در برخی موارد لازم است که در مقابل مقدار پیش فرض (رشته خالی) برای یک کنترل ورودی از مقدار اولیه مورد نظر خود استفاده نمائیم ( با توجه به سیاست های طراحی بخش رابط کاربر ) . استفاده از روش فوق ، در مواردیکه دارای یک مقدار پیش فرض در ارتباط با یک کنترل ورودی بوده و قصد داریم که کاربر را ملزم به انتخاب یک مقدار دیگر نمائیم ، توصیه می گردد . مثلا” می توان از یک کنترل ListBox بهمراه یک Entry انتخاب شده بصورت پیش فرض که شامل دستورالعمل هائی برای کاربر بمنظور انتخاب یک آیتم از لیست است ، استفاده نمود . در چنین مواردی لازم است که کاربر یک آیتم دیگر موجود در لیست را از طریق کنترل انتخاب  و در این رابطه نمی بایست کاربر آیتمی را انتخاب نماید که شامل دستورالعمل است . بدین ترتیب در صورتیکه کاربر همان مقدار اولیه پیش فرض را انتخاب نماید ، کنترل RequiredFieldValidator ، پیام خطاء مورد نظر خود را نمایش خواهد داد . بمنظور مشخص نمودن مقدار اولیه یک کنترل ورودی، می توان از خصلت InitialValue استفاده کرد.
    با توجه به سیاست های طراحی رابط کاربر ، می توان از چندین Validator  در ارتباط با یک کنترل ورودی مشابه و یکسان استفاده نمود. مثلا”  می توان از یک کنترل  RequiredFieldValidator ، بمنظور حصول اطمینان از درج داده در کنترل مورد نظر استفاده و در همان حال از کنترل دیگری نظیر RangeValidator نیز استفاده تا این اطمینان ایجاد گردد که ورودی درج شده در کنترل مورد نظر در محدوده قابل قبول و مجاز می باشد .
  • کنترل ValidationSummary . کنترل فوق ، امکان ارائه اطلاعات مختصر در رابطه با تمامی کنترل های بررسی صحت داده موجود در یک صفحه وب و در یک موفقعیت ( مکان ) را فراهم می نماید. خلاصه  اطلاعات موردنظر را می توان با استفاده از روش های متفاوتی نظیر : یک پاراگراف ، یک لیست و یا یک Bulleted list . ارائه نمود. نحوه نمایش اطلاعات با استفاده از خصلت DisplayMode مشخص خواهد شد .پیام خطاء نمایش داده شده در کنترل ValidationSummary برای هر یک از کنترل های بررسی صحت داده موجود در صفحه ، توسط خصلت ErrorMessage مربوط به هر یک از کنترل ها ، مشخص می گردد . در صورتیکه خصلت ErrorMessage مربوط به کنترل بررسی صحت داده ، مقداردهی نگردد، هیچگونه پیام خطائی در ارتباط با آن کنترل خاص توسط کنترل ValidationSummary نمایش داده نخواهد شد. برای مشخص نمودن عنوان گزارش خطاء، می توان از خصلت HeaderText استفاده کرد. بمنظور کنترل نمایش اطلاعات کنترل ValidationSummary ، می توان از خصلت ShowSummary استفاده نمود . برای نمایش خلاصه اطلاعات مورد نظر در یک Message Box می توان مقدار خصلت ShowMessageBox را True در نظر گرفت .
  • کنترل RegularExpressinoValidator . کنترل فوق ، بمنظور تطبیق داده ورودی در یک کنترل ورودی با یک الگوی تعریف شده توسط یک عبارت ، استفاده می گردد . کنترل فوق ، امکان بررسی لازم در خصوص دنباله کاراکترهای مورد انتظار نظیر آدرس های پست الکترونیکی ، شماره های تلفن و یا کد پستی  را فراهم می نماید . با استفاده از خصلت ValidationExpression ، عبارت مورد نظر بمنظور بررسی صحت داده کنترل ورودی،  تعریف و مشخص می گردد . گرامر عبارت بررسی صحت داده بر روی سرویس گیرنده و سرویس دهنده با یکدیگر متفاوت است . در سرویس گیرنده ، بمنظور مشخص نمودن عبارت مورد نظر از گرامر Jscript و بر روی سرویس دهنده از گرامر Regex استفاده می گردد . با توجه به اینکه، گرامرعبارات Jscript زیر مجموعه ای از گرامر Regex می باشد ، توصیه می گردد از گرامر Jscript برای تعریف عبارت مورد نظر خود استفاده تا شاهد نتایج یکسانی بر روی سرویس گیرنده و سرویس دهنده باشیم .
  •  کنترل CompareValidator . کنترل فوق، مقدار ورودی در یک کنترل ورودی را با مقدار دیگر مقایسه می نماید . از خصلت ControlToValidate  برای مشخص نمودن کنترل ورودی اول و از خصلت ControlToCompare برای مشخص نمودن کنترل ورودی دوم که می بایست با یکدیگر مقایسه گردند ، استفاده می شود .درصورتیکه ماحصل مقایسه یکسان  باشد، از مقدار مشخص شده توسط خصلت ControlToCompare ، استفاده می گردد .

استفاده از کنترل های اعتبار داده ASP.NET توسط ویژوال استودیو دات نت
بررسی صحت داده ورودی توسط کاربر در بخش رابط کاربر هر نرم افزار ، از جمله عملیاتی است که اولا” وقت زیادی را بخود اختصاص و ثانیا” در برخی موارد چالش های خاص خود را بدنبال خواهد داشت .  فریمورک دات نت در این رابطه مجموعه ای از کنترل های بررسی صحت داده را ارائه که با استفاده از آنان می توان اقدام به بررسی داده  در کنترل های ورودی موجود بر روی یک فرم وب  و ارائه پیام خطاء مورد نظر در صورت عدم رعایت ضوابط و شرایط موجود توسط کاربر بمنظور ورود اطلاعات نمود.

در ادامه به بررسی مثالی خواهیم پرداخت که  با ارائه یک فرم از کاربر درخواست تکمیل و ارسال اطلاعات خواهد شد. در این رابطه از کاربر درخواست  نام ، آدرس پست الکترونیکی و رمز عبور می گردد . پس از ارسال اطلاعات توسط کاربر ، کنترل های بررسی صحت و اعتبار داده موجود بر روی فرم ، عملیات تائید داده ورودی توسط کاربر را انجام و درصورت عدم رعایت ضوابط تعریف شده در ارتباط با هر یک از کنترل های ورودی ،  پیام خطائی ،بصورت مختصر و در قسمت انتهائی صفحه نمایش داده خواهد شد.

ایجاد یک برنامه وب ASP.NET با استفاده از VB.NET
بمنظور ایجاد یک برنامه وب ASP.NET با استفاده از VB.NET مراحل زیر را دنبال می نمائیم :

  •  اجرای برنامه ویژوال استودیو دات نت
  • از طریق منوی File ، گزینه New و در ادامه Project را انتخاب نمائید .
  •  در جعبه محاوره ای New Project ، در بخش Project Types گزینه Visual Bacic Projects را انتخاب ( کلیک ) و در ادامه ASP.NET Web Application  را انتخاب نمائید .  
  •  در فیلد Location ، بجای نام پیش فرض #WebApplication ، نام ValidationData را در نظر می گیریم . در صورتیکه از یک سرویس دهنده محلی استفاده می گردد ، می توان  نام سرویس دهنده را http://localhost در نظر گرفت . بدین ترتیب در فیلد Location ، آدرس مربوطه بصورت زیر نشان داده خواهد شد : http://localhost/ValidationData

ایجاد یک فرم وب نمونه  

 بمنظور ایجاد یک فرم وب در پروژه ایجاد شده در مرحله قبل ، مراحل زیر را دنبال می نمائیم :

  • اضافه نمودن یک فرم جدید با نام ValidUser.aspx  به برنامه وب ASP.NET در ویژوال استودیو دات نت . بمنظور انجام خواسته فوق ، دو مرحله زیر را دنبال می نمائیم :
    مرحله یک : در Solution Explorer ، بر روی گره Project کلیک سمت راست نموده و گزینه Add و در ادامه گزینه Add Web Form انتخاب گردد.

    مرحله دو : درفیلد Name ، نام ValidUser.aspx را درج و در ادامه گزینه Open انتخاب گردد .

  • در ادامه،  کدهای زیر را  پس از استقرار در پنجره نمایش HTML مربوط به ValidUser.aspx ،  بین تگ های شروع و پایان مستقر می نمائیم .
تگ های HTML درج شده در ValidUser.aspx
<table>
<tr width=”100″>

<td>نام</td>

<td><input id=”txtUserName” type=”text” size=”20″ maxlength=”15″ runat=”server” NAME=”txtUserName”>*

</td>

</tr>

<tr width=”100″>

<td>

آدرس پست الکترونیکی

<td><input id=”txtEmail” type=”text” size=”35″ maxlength=”30″ runat=”server” NAME=”txtEmail”>

(<A>[email protected]</A>)

</td>

</tr>

<tr width=”100″>

<td>رمز عبور</td>

<td><input id=”txtPassword” type=”password” size=”15″ maxlength=”10″ runat=”server” NAME=”txtPassword”>*

</td>

</tr>

<tr width=”100″>

<td>تایپ مجدد رمز عبور</td>

<td><input id=”txtConfirmPassword” type=”password” size=”15″ maxlength=”10″ runat=”server” NAME=”txtConfirmPassword”>*

</td>

</tr>

</table>

  • کنترل های RequiredFieldValidator ، بررسی لازم در خصوص داده ورودی برای هر یک از فیلدهای موردنظر در ارتباط با کنترل های مشخص شده را انجام خواهد داد . در این رابطه کنترل های  RequiredFieldValidator را در ارتباط با فیلدهای UserName و Password به فرم اضافه می نمائیم . در ValidUser.aspx ، و پنجره HTML  مستقر و  کد زیر را بعد از تگ <Table/> اضافه می نمائیم .
<asp:RequiredFieldValidator id=valUserNameRequired
ControlToValidate=txtUserName ErrorMessage=”نام کاربر می بایست وارد شود” EnableClientScript=true Display=None Runat=server/>

<asp:RequiredFieldValidator id=valPasswordRequired

ControlToValidate=txtPassword ErrorMessage=”رمز عبور می بایست وارد شود” EnableClientScript=true Display=None Runat=server/>

<asp:RequiredFieldValidator id=valConfirmPasswordRequired

ControlToValidate=txtConfirmPassword ErrorMessage=”تائید مجدد رمز عبور می بایست وارد شود”

EnableClientScript=true Display=None Runat=server/>

  • فیلدهای رمز عبور تاکید مضاعفی  است که کاربر دومرتبه و بدرستی رمز عبور خود را وارد نماید. کنترل CompareValidator محتویات دو فیلد را با یکدیگر مقایسه و در صورت عدم یکسان بودن آنان ، پیام خطائی نمایش داده  خواهد شد . در این رابطه از یک کنترل CompareValidator بمنظور بررسی صحت ( یکسان بودن ) فیلدهای رمز عبور استفاده شده است . بدین منظور پس از استقرار در پنجره HTML مربوط به فرم وب ValidUser.aspx ، کد زیر را پس از کنترل های اضافه شده در مرحله قبل ، به فرم مورد نظر اضافه می نمائیم .
<asp:CompareValidator id=valComparePassword
ControlToValidate=txtConfirmPassword ErrorMessage=”فیلدهای رمز عبور می بایست یکسان باشند” ControlToCompare=txtPassword Display=None

EnableClientScript=true Runat=server/>

  • در برخی موارد لازم است از نوع خاصی بررسی صحت و اعتبار داده استفاده گردد . فیلد آدرس پست الکترونیکی در مثال فوق ، نمونه ای در این زمینه است . در این رابطه از کنترل RegularExpressionValidator استفاده تا این اطمینان حاصل گردد که کاربران فرمت اولیه برای درج یک آدرس پست الکترونیکی را رعایت نموده اند . محتویات فیلد فوق مجددا” بر اساس یک عبارت ( تعریف یک الگو ) بررسی شده و در صورتیکه محتویات مورد نظر با عبارت تعریف شده مطابقت نداشته باشد ، یک پیام خطاء نمایش داده خواهد شد.  در این رابطه لازم است که یک کنترل RegularExpressionValidator بر روی فرم اضافه تا فرمت داده آدرس پست الکترونیکی ورودی توسط کاربر را بررسی و از صحت و رعایت فرمت مورد نظر اطمینان حاصل گردد .  بدین منظور پس از استقرار در پنجره HTML مربوط به فرم وب ValidUser.aspx ، کد زیر را پس از کنترل های اضافه شده در مرحله قبل ، به فرم مورد نظر اضافه می نمائیم .
<asp:RegularExpressionValidator ID=valEmailAddress
ControlToValidate=txtEmail ValidationExpression=”.*@.*\..*” ErrorMessage=”آدرس پست الکترونیکی درست نمی باشد”

Display=None EnableClientScript=true Runat=server/>

  • در ادامه ، بر روی فرم ValidUser.aspx ، یک دکمه “ارسال” را اضافه می نمائیم .بدین ترتیب به کاربر اجازه داده خواهد شد تا صفحه مورد نظر را برای سرویس دهنده ارسال و عملیات بررسی صحت و اعتبار داده درج شده در هر یک از فیلدهای موجود بر روی فرم ، انجام شود.   بدین منظور پس از استقرار در پنجره HTML مربوط به فرم وب ValidUser.aspx ، کد زیر را پس از کنترل های اضافه شده در مرحله قبل ، به فرم مورد نظر اضافه می نمائیم .
<br>
<input type=submit id=cmdSumbit value=submit runat=server/>
  • در نهایت ، از یک کنترل ValidationSummary بمنظور نمایش تمامی خطاهای بوجود آمده در یک ناحیه خاص بر روی فرم استفاده می شود. بدین منظور پس از استقرار در پنجره HTML مربوط به فرم وب ValidUser.aspx ، کد زیر را پس از دکمه “ارسال” اضافه شده  در مرحله قبل ، به فرم مورد نظر اضافه می نمائیم .
<br><br>
<asp:ValidationSummary id=ValSummary HeaderText=”The following

errors were found:” ShowSummary=True DisplayMode=List Runat=server/>

  • پس از اتمام مراحل فوق ، با اتتخاب گزینه Save  ، فرم وب ایجاد شده ذخیره و در ادامه می توان با استفاده از منوی Debug و گزینه Start ، امکان ایجاد و اجرای برنامه وب را فراهم نمود.

اجرای برنامه
در صورنیکه کاربر دکمه “ارسال” را بدون درج هیچگونه اطلاعاتی در فیلدهای مربوطه ، فعال نماید ، سه پیام خطاء بصورت زیر نمایش داده خواهد شد .

در صورتیکه کاربر، دو رمز عبور را وارد که با یکدیگر یکسان نمی باشند  ، پیام خطاء زیر ارائه خواهد شد .

در صورتیکه کاربر یک آدرس پست الکترونیکی را وارد که دارای فرمت مناسب  نباشد ، ، پیام خطاء زیر نمایش داده خواهد شد .

 

[تعداد: ۱   میانگین: ۴/۵]
اشتراک
اطلاع از
guest
0 نظر
بازخورد های درون متن
مشاهده همه نظرات