در این مطلب می خواهیم بوسیله کوئری CREATE TABLE، جدولی به نام testtbl را درون پایگاه داده LocalDB ایجاد کنیم، بنابراین پیش از هر چیز می بایست درون پروژه ساده کنسولی () یک پایگاه داده LocalDB ایجاد کرده باشید. برای اتصال به پایگاه داده و نمایش خصوصیت های آن، روی نام پایگاه داده که فایلی است با پسوند mdf دو بار کلیک کنید. مهم ترین خصوصیتی که نیاز داریم، رشته اتصال (Connection String) است. شکل زیر نمونه ای از پنجره خصوصیت های پایگاه داده را نشان می دهد.

برای بدست آوردن رشته باید مقدار فیلد Connection String از شکل بالا را کپی کنید، زیرا از آن در گام های پیش رو برای اتصال و تعامل با پایگاه داده نیاز خواهیم داشت. همانند شکل زیر، در فایل Program.cs و درون بدنه کلاس ConsoleApp1 یک متد تازه به نام createTableCommand ایجاد کنید. توجه کنید کلاس درون فایل Program.cs همنام با پروژه ای است که ایجاد می کنید و شاید برای شما متفاوت با کلاس ConsoleApp1 باشد.

۱ – برای کار با ADO.NET باید فضای نام فراهم کننده داده دلخواه و مربوط به پایگاه داده هدف را به درون برنامه ضمیمه کنید. در این دوره و در این مطلب می خواهیم از SQL Server استفاده کنیم، پس باید فضای نام System.Data.SqlClient را ضمیمه برنامه کنیم.

۲ – متد CreateTable یا هر متد دیگری که قرار است بوسله آن و ADO.NET برنامه با پایگاه داده تعامل داشته باشد، باید یک ورودی از نوع کلاس SqlConnection را دریافت کنید، زیرا از آن می خواهیم برای باز کردن اتصال به پایگاه داده استفاده کنیم. در شکل بالا و در خط ۲۷ و در بدنه عبارت try می بینید که توسط پارامتر connection از متد CreateTable، متد ()Open از کلاس SqlConnection فراخوانی شده است.

۳ – تعیین یک رشته کوئری که شامل هر کدام از دستورهای SQL می شود. در شکل زیر در خط های ۱۳تا ۱۶ از شکل، رشته کوئری CREATE TABLE برای ایجاد یک جدول ساده را تعریف کرده ایم.

۴ – در خط ۱۷ یک عبارت using باز و در خط ۴۲ پایان یافته است. متغیر یا پارامتر connection که از نوع کلاس SqlConnection است درون عبارت using فرستاده شده است و سپس تمامی گام ها و موارد لازم برای تعامل با پایگاه داده درون بدنه عبارت using نوشته شده اند.

۵ – نخستین گام در بدنه عبارت using ایجاد یک نمونه از کلاس SqlCommand است. کلاس SqlCommand کلاسی است که بوسیله آن یک فرمان کوئری SQL را آماده می کنیم.

۶ – در خط های پایینی (۲۱ و ۲۳) دو خصوصیت کلاس SqlCommand را مقدار دهی کرده ایم. خصوصیت coomand.Connection را با پارامتر ورودی متد، یعنی متغیر connection از کلاس SqlConnection مقدار دهی کرده ایم، زیرا باید مقصد اجرای دستور را مشخص کرده باشیم. سپس خصوصیت command.CommandText را با متغیر createTableCommand مقدار دهی کرده ایم. متغیر createTableCommand (در خط ۱۳ تا ۱۶) از نوع string است که رشته کوئری را در خود نگه می دارد.

۷ – در بدنه عبارت try نخست باید بوسیله متد ()Open از کلاس SqlConnection اتصال به پایگاه داده باز شود و سپس بوسیله متد ()ExecuteNonQuery موئری تعیین شده بوسیله خصوصیت CommandText اجرا شود. در صورتی که کوئری با موفقیت اجرا شود، یک پیغام دلخواه (در اینجا خط ۲۹) نشان داده می شود و نشان دهنده این است که جدول در پایگاه داده ایجاد شده است. ولی در صورتی که هر گونه خطایی رخ دهد، بوسیله خط های ۳۱ تا ۳۴ یک استثنا (Exception) رخ داده و پیغام آن نشان داده می شود. در نهایت اگر خطایی رخ ندهد، درون عبارت finnaly تمامی اتصال ها بسته می شوند.

پس از آنکه متد را نوشتیم برابر با شکل زیر باید سه گام زیر را درون متد Main دنبال کنیم. هر برنامه Net Framework دارای یک فایل به نام Program.cs است که در این فایل یک کلاس همنام با پروژه قرار دارد و درون این کلاس متدی به نام Main قرار دارد. متد Main نقطه شروع اجرای برنامه است، پس برابر با شکل زیر درون آن سه گام رخ می دهد:

۱ – در این مطلب باید نخست رشته اتصال را درون یک متغیر از نوع string قرار دهیم. در شکل زیر آنرا connectionString نامگذاری کرده ایم.

۲ – برای ایجاد اتصال، یک نمونه ازکلاس SqlConnection را ایجاد کرده و متغیر connectionString را به عنوان ورودی به تابع سازنده آن فرستاده ایم. در این مطلب آنرا connection نامگذاری کرده ایم.

۳ – سپس باید متد CreateTable را فراخوانی کنیم. برابر با تعریف آن، یک پارامتر ورودی از نوع کلاس SqlConnection نیاز دارد، پس باید متغیر connection را به آن بفرستیم. البته می توانیم پارامترهای دیگری مانند نام جدول از نوع string را برای متد CreateTable نیز تعریف کنیم ولی در این مطلب ساده ترین حالت، یعنی تک پارامتر نوع کلاس SqlConnection را استفاده کرده ایم.

زمانی که نمونه ای از کلاس SqlConnection را ایجاد می کنید، در واقع یک اتصال را با پارامترهای رشته اتصال تعریف می کنید ولی تا زمانی که متد ()Open فراخوانی نشود، اتصال به پایگاه داده برقرار نمی شود. به عبارت دیگر اگر متد ()Open فراخوانی نشود، فرمان SQL که بوسیله کلاس SqlCommand آماده کرده اید، اجرا نخواهد شد.

دانلود سورس برنامه های این مطلب ADONET Create Table