در مطلب ایجاد جدول بوسیله ADO.NET شیوه به کار گیری از ADO.NET برای تعامل با پایگاه داده رابطه ای را آموزش دادیم و بوسیله ADO.NET یک جدول در پایگاه داده ایجاد کردیم. در این مطلب می خواهیم آماده سازی کوئری ها به همراه پارامترهای کوئری را برای درج داده درون جدول آموزش دهیم. پیش از ادامه مطلب لازم است موارد زیر را بررسی کنید.

۱ – چون پایگاه داده هدف SQL Server است، پس باید فضای نام System.Data.SqlClient به برنامه ضمیمه شود.

۲ – همانند متد CreateTable در مطلب پیشین، در این مطلب متد InsertName دارای یک پارامتر از نوع کلاس SqlConnection است.

۳ – یک پروزه تازه ایجاد کنید. در این مطلب از همان جدولی که در مطلب پیشین ایجاد کردیم برای آموزش درج داده ها کمک می گیریم. بنابراین باید رشته اتصال مطلب پیشین را باید در اینجا نیز به کار ببرید. جدولی که ایجاد کردیم تنها دارای دو ستون بوده است که ستون id به عنوان کلید اصلی و ستون دیگر name نام را در خود نگه می دارد.

در شکل زیر متد InserName دارای دو پارامتر است، پارامتر نخست آن از نوع کلاس SqlConnection و پارامتر دوم آن یک لیست از رشته ها است که عنصر آن یک رشته (نام) است که می خواهیم درون جدول درج کنیم. در خط ۱۳ و برابر با کد زیر، یک پارامتر به نام name@ ایجاد کرده ایم، که از آن برای جایگزینی مقدار هر عنصر لیست درون کوئری استفاده می شود. در واقع پارامترها که با کاراکتر @ شروع می شوند، محلی درون رشته کوئری را مشخص می کنند که پس از این می خواهیم مقداری را با آن جایگزین کنیم. به عبارت دیگر به جای قرار دادن سر راست مقدار درون کوئری، یک پارامتر مانند name@ را تعریف کرده و سپس بوسیله متدی به نام ()AddWithValue مقدار به پارامتر فرستاده شده و جایگزین پارامتر در کوئری می شود.

در خط ۱۷ یک نمونه از کلاس SqlCommand ایجاد کرده ایم ولی این بار به شیوه متفاوتی آنرا ایجاد کرده ایم. در آن به جای مقدار دهی خصوصیت های Connection و CommandText یکباره متغیرهای connection و insertQuery را به تابع سازنده کلاس SqlCommand فرستاده ایم. در کدهای زیر هر دو روش نشان داده شده اند.

درون بدنه try نخست اتصال بوسیله فرمان ()connection.Open باز می شود. سپس درون حلقه foreach در هر گام یک عنصر لیست خوانده شده و بوسیله متد ()AddWithValue از کلاس SqlCommand جایگزین پارامتر name@ می شود. همانطور که می بینید پارامتر نخست متد ()AddWithValue یک رشته است که برابر با نام یکی از پارامترهای تعریف شده درون رشته کوئری است. سپس کوئری آماده شده، بوسیله متد ()ExecuteNonQuery اجرا می شود. توجه کنید منظور از کوئری آماده شده به این مفهوم است که مقدار متغیر name درون حلقه for با مقدار پارامتر name@ درون کوئری جایگزین شده و سپس کوئری آماده شده بوسیله متد ()ExecuteNonQuery اجرا می شود. در پایان اگر متد ()ExecuteNonQuery با موفقیت اجرا شود، درون بدنه finall اتصال بسته خواهد شد.

در پایان باید درون متد ()Main رشته کوئری را تعریف کنیم تا آنرا به متد سازنده کلاس SqlConnection بفرستیم. یک لیست به نام names از نوع string ایجاد کرده ایم و سپس بوسیله متد ()Add عنصرهای متفاوت از نوع رشته یا همان نام ها را به لیست اضافه کرده ایم. در پایان به ترتیب متغیرهای connection و names به متد InsertName فرستاده شده اند.

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