خوش آموز درخت تو گر بار دانش بگیرد، به زیر آوری چرخ نیلوفری را
23. آموزش برنامه نویسی به زبان ساده . افزودن اطلاعات به جداول پایگاه داده

در آموزش قبلی نحوه بازیابی اطلاعات موجود در جداول پایگاه داده را یاد گرفتیم .در این آموزش به نحوه افزودن رکوردهای اطلاعاتی به جداول پایگاه داده می پردازیم. برای اینکار از ADO.NET و همینطوردستور INSERT که جزء دستورات SQL Server می باشد استفاده خواهیم کرد.

پروژه دفتر تلفن را باز کرده و سپس فرم FrmAddContact را نیز باز کنید. در اوایل این دوره آموزشی یکسری موارد را صرفا جهت آموزش به این فرم اضافه کردیم. امروز می خواهیم آن موارد آموزشی را حذف کنیم. وارد محیط کد نویسی این فرم شوید و تغییرات زیر را انجام بدهید.
وارد محیط کد نویسی فرم FrmAddContact شوید. و تابع "Function" زیر را در آن بنویسید.
حالا وارد کد مربوط به رویداد کلیک دکمه "ثبت اطلاعات" شوید و فراخوانی تابع افزودن (InsertRecord) را در آنجا به شکل زیر قرار دهید.
فعلا نگران مفاهیم کدها نباشید، در ادامه همین آموزش تک تک خطهای این کد را تشریح خواهیم کرد. کاری که باقی مانده است اینست که در فرم مدیریت تماسها وقتی کاربر دکمه افزودن را کلیک کرد، فروم افزودن تماس نمایان شود.
فرم FrmManageContacts را باز کنید. بر روی دکمه "افزودن" دوبار کلیک کنید تا بدنه رویداد کلیک این دکمه در قسمت کدهای فرم ایجاد شود. کدهای مربوط به فراخوانی فرم را مشابه تصویر زیر بنویسید.
همانطور که می بینید فراخوانی یک فرم از داخل فرم دیگر، کار ساده ای می باشد. کافیست ابتدا مشابه کدهای بالا یک نمونه از آن فرم را بسازید و یک نام برای آن تعیین کنید. در اینجا ما با استفاده از دستور dim یک نمونه از فرم FrmAddContact را ایجاد کرده ایم و نام این نمونه را frm گذاشته ایم.
حالا با استفاده از متد ShowDialog که از متدهای شیء فرم می باشد فرم را به کاربر نمایش می دهیم.
مراحل زیر را بترتیب انجام بدهید تا بتوانیم رویه افزودن را تست کنیم.
➊ برنامه را اجرا کنید. مشابه تصویر زیر فرم مدیریت تماسها ظاهر می شود.
➋ بر روی دکمه جستجو کلیک کنید تا اطلاعات موجود را بتوانید ببینید.
➌ حالا بر روی دکمه افزودن کلیک کنید تا فرم افزودن تماس جدید نمایان شود.
➍ مشابه تصویر زیر اطلاعات را در فرم پر کنید و سپس بر روی دکمه ثبت اطلاعات کلیک کنید.
➎ پیغام زیر را Ok کنید.
➏ حالا فرم افزودن تماس را ببندید و در فرم مدیریت تماسها مجددا بر روی دکمه جستجو کلیک کنید. همانطور که در تصویر زیر نیز می توانید ببینید رکورد جدید ما به جدول پایگاه داده اضافه شده است.
➐ تست ما با موفقیت انجام یافت. حالا برنامه را متوقف کنید.
حالا که مطمئن شدیم کد ما درست کار می کند و خروجی اش را نیز با هم تست کردیم، در اینجا می خواهیم به تابع InsertRecord نگاه دقیقتر و موشکافانه تری بیندازیم.
نمونه این قسمت از کد را عینا در کد مربوط به بازیابی اطلاعات داشتیم. بطور کلی برای هر نوع عملیات مرتبط با پایگاه داده اعم از بازیابی، افزودن، ویرایش، و حذف باید حتما کد اتصال به پایگاه داده را بنویسیم و اتصال را باز کنیم تا بقیه کدهای مربوطه بتوانند به پایگاه داده ارسال شوند.
برای انجام عملیات ارسال هر نوع دستور اس کیو ال سرور از طریق محیط برنامه نویسی ویژوال استودیو، ما باید مشابه کد بالا یک شیء از نوع SqlCommand معرفی کنیم و در ویژگی Connection آن یک کانکشن را تنظیم نماییم.
ویژگی CommandText از شیء کامند (SqlCommand) متن دستور اس کیو ال سرور را که قرار است به پایگاه داده ارسال شود در خود ذخیره دارد. در اینجا ما دستورINSERT اس کیو ال سرور را نوشته ایم. در مورد ساختار دستور INSERT و اساسا ساختار سایر دستورهای مرتبط با SQL Server می توانید از آموزشهای پایگاه داده استفاده نمایید. اما در اینجا این را بدانید که این دستور عملیات افزودن اطلاعات به یک جدول دیتابیس را انجام می دهد.
اگر در دستور اس کیو ال دقت کنید علامت @ در برخی جاها تکرار شده است. کلماتی مانند RowID@ پارامتر می باشند و در واقع مقدار آنها برای اس کیو ال سرور مشخص نمی باشد. در ادامه با شیوه مقدار دهی این پارامترها آشنا خواهید شد.
متد AddWithValue از متدهای شیء کامند (SqlCommand) می باشد. کار این متد اینست که پارامترهای یک دستور اس کیو ال را مقدار دهی می کند. این متد دو پارامتر از شما می گیرد. در پارامتر اول نام پارامتر اس کیو ال باید ذکر شود و در پارامتر دوم مقدار پارامتر اس کیوال باید مشخص شود. اگر دقت کنید برای مقدار دهی به این پارامتر از ویژگی Text در کنترل txtRowID استفاده کرده ایم. بقیه پارامترها هم به همین شکل می باشند.
در این قسمت از کد، مقدار دهی پارامترها بصورت شرطی انجام شده است، بدین نحو که اگر کاربر دکمه رادیویی "مرد" را تیک زده باشد، مقدار 1 که معادل مرد است در این پارامتر قرار می گیرد، و اگر کاربر دکمه رادیویی "زن" را انتخاب کرده باشد، مقدار 2 که معادل زن می باشد در این پارامتر قرار می گیرد. اگر هم کاربر هیچکدام از این دو گزینه را انتخاب نکرده باشد مقدار DBNull.Value در این پارامتر قرار می گیرد. مقدار DBNull.Value دقیقا معادل همان null است که در آموزشهای پایگاه داده روی آن بحث کردیم.
متد ExecuteNonQuery از متدهای شیء کامند می باشد. کار این متد اینست که یک دستور را در به دیتابیس ارسال می کند.
پروژه خود را ذخیره کنید. در آموزشهای بعدی به ادامه تکمیل آن خواهیم پرداخت.
آموزش قبلی : 22. آموزش برنامه نویسی به زبان ساده . بازیابی اطلاعات از پایگاه داده
آموزش بعدی : 24. آموزش برنامه نویسی به زبان ساده . مدیریت خطاها با دستور Try ... Catch

اگر آموزشهای قبلی را ندیده اید، به مطالعه این آموزش نپردازید، در واقع این آموزش یک مجموعه سریالی است که مطالب آن بصورت تنگاتنگ در ارتباط با یکدیگر می باشند. برای شروع این دوره آموزشی بر روی لینک آغاز دوره آموزشی کلیک کنید.
آغاز دوره آموزشی
فهرست آموزشهای دوره آموزش برنامه نویسی به زبان ساده از مبتدی تا پیشرفته بصورت کاملا کاربردی
آغاز دوره آموزشی
فهرست آموزشهای دوره آموزش برنامه نویسی به زبان ساده از مبتدی تا پیشرفته بصورت کاملا کاربردی
انجام یکسری تغییرات در فرم افزودن اطلاعات تماس
پروژه دفتر تلفن را باز کرده و سپس فرم FrmAddContact را نیز باز کنید. در اوایل این دوره آموزشی یکسری موارد را صرفا جهت آموزش به این فرم اضافه کردیم. امروز می خواهیم آن موارد آموزشی را حذف کنیم. وارد محیط کد نویسی این فرم شوید و تغییرات زیر را انجام بدهید.
-
کد مربوط به رویه کلیک دکمه "تست" را بطور کامل حذف کنید.
-
رویه AddRowToGrid را بطور کامل حذف کنید.
-
کد مربوط به فراخوانی رویه AddRowToGrid را که در رویداد کلیک دکمه "ثبت اطلاعات" قرار دارد، حذف کنید. بعد از اعمال تغییرات در این قسمت کد رویداد کلیک این دکمه باید به شکل زیر گردد.
-
کنترل گرید موجود در صفحه و همینطور دکمه "تست" را حذف کنید.
-
یک Label و یک TextBox مشابه تصویر زیر به فرم اضافه کنید. نام Label را lblRowID و نام TextBox را txtRowID بگذارید. ویژگی Text کنترل Label را برابر با "کد" قرار دهید.
-
در پایان باید محیط طراحی فرم شما مشابه تصویر زیر باشد.
نوشتن کد افزودن رکورد به پایگاه داده
وارد محیط کد نویسی فرم FrmAddContact شوید. و تابع "Function" زیر را در آن بنویسید.

حالا وارد کد مربوط به رویداد کلیک دکمه "ثبت اطلاعات" شوید و فراخوانی تابع افزودن (InsertRecord) را در آنجا به شکل زیر قرار دهید.

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

همانطور که می بینید فراخوانی یک فرم از داخل فرم دیگر، کار ساده ای می باشد. کافیست ابتدا مشابه کدهای بالا یک نمونه از آن فرم را بسازید و یک نام برای آن تعیین کنید. در اینجا ما با استفاده از دستور dim یک نمونه از فرم FrmAddContact را ایجاد کرده ایم و نام این نمونه را frm گذاشته ایم.
حالا با استفاده از متد ShowDialog که از متدهای شیء فرم می باشد فرم را به کاربر نمایش می دهیم.
تست روال افزودن اطلاعات در زمان اجرا
مراحل زیر را بترتیب انجام بدهید تا بتوانیم رویه افزودن را تست کنیم.
➊ برنامه را اجرا کنید. مشابه تصویر زیر فرم مدیریت تماسها ظاهر می شود.

➋ بر روی دکمه جستجو کلیک کنید تا اطلاعات موجود را بتوانید ببینید.

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

➍ مشابه تصویر زیر اطلاعات را در فرم پر کنید و سپس بر روی دکمه ثبت اطلاعات کلیک کنید.

➎ پیغام زیر را Ok کنید.

➏ حالا فرم افزودن تماس را ببندید و در فرم مدیریت تماسها مجددا بر روی دکمه جستجو کلیک کنید. همانطور که در تصویر زیر نیز می توانید ببینید رکورد جدید ما به جدول پایگاه داده اضافه شده است.

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

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

برای انجام عملیات ارسال هر نوع دستور اس کیو ال سرور از طریق محیط برنامه نویسی ویژوال استودیو، ما باید مشابه کد بالا یک شیء از نوع SqlCommand معرفی کنیم و در ویژگی Connection آن یک کانکشن را تنظیم نماییم.

ویژگی CommandText از شیء کامند (SqlCommand) متن دستور اس کیو ال سرور را که قرار است به پایگاه داده ارسال شود در خود ذخیره دارد. در اینجا ما دستورINSERT اس کیو ال سرور را نوشته ایم. در مورد ساختار دستور INSERT و اساسا ساختار سایر دستورهای مرتبط با SQL Server می توانید از آموزشهای پایگاه داده استفاده نمایید. اما در اینجا این را بدانید که این دستور عملیات افزودن اطلاعات به یک جدول دیتابیس را انجام می دهد.
اگر در دستور اس کیو ال دقت کنید علامت @ در برخی جاها تکرار شده است. کلماتی مانند RowID@ پارامتر می باشند و در واقع مقدار آنها برای اس کیو ال سرور مشخص نمی باشد. در ادامه با شیوه مقدار دهی این پارامترها آشنا خواهید شد.

متد AddWithValue از متدهای شیء کامند (SqlCommand) می باشد. کار این متد اینست که پارامترهای یک دستور اس کیو ال را مقدار دهی می کند. این متد دو پارامتر از شما می گیرد. در پارامتر اول نام پارامتر اس کیو ال باید ذکر شود و در پارامتر دوم مقدار پارامتر اس کیوال باید مشخص شود. اگر دقت کنید برای مقدار دهی به این پارامتر از ویژگی Text در کنترل txtRowID استفاده کرده ایم. بقیه پارامترها هم به همین شکل می باشند.

در این قسمت از کد، مقدار دهی پارامترها بصورت شرطی انجام شده است، بدین نحو که اگر کاربر دکمه رادیویی "مرد" را تیک زده باشد، مقدار 1 که معادل مرد است در این پارامتر قرار می گیرد، و اگر کاربر دکمه رادیویی "زن" را انتخاب کرده باشد، مقدار 2 که معادل زن می باشد در این پارامتر قرار می گیرد. اگر هم کاربر هیچکدام از این دو گزینه را انتخاب نکرده باشد مقدار DBNull.Value در این پارامتر قرار می گیرد. مقدار DBNull.Value دقیقا معادل همان null است که در آموزشهای پایگاه داده روی آن بحث کردیم.

متد ExecuteNonQuery از متدهای شیء کامند می باشد. کار این متد اینست که یک دستور را در به دیتابیس ارسال می کند.
پروژه خود را ذخیره کنید. در آموزشهای بعدی به ادامه تکمیل آن خواهیم پرداخت.
آموزش قبلی : 22. آموزش برنامه نویسی به زبان ساده . بازیابی اطلاعات از پایگاه داده
آموزش بعدی : 24. آموزش برنامه نویسی به زبان ساده . مدیریت خطاها با دستور Try ... Catch
نمایش دیدگاه ها (0 دیدگاه)
دیدگاه خود را ثبت کنید: