درخواست های ارتباط
جستجو تنظیمات
لیست دوستان من

مدیریت کاربران در سی شارپ – قسمت دوم

0 نظرات

با سلام خدمت تمام دوستان عزیز و کاربران آی تی پرو با قسمت دوم از آموزش ساخت برنامه مدیریت کاربران ساده در خدمت شما هستم. در این قسمت می خوام چگونگی ساخت یک فرم ثبت نام در برنامه رو بهتون بگم، خب برای اینکار پروژه قبلی که در آموزش ساخت# ساختیم رو باز کنید یک دکمه جدید روی فرم ورودتون با نام ثبت نام قرار بدید.

Image

خب بعد از این کار از منوی Project روی آیتم Add new Windows Form کلیک کنید و یک فرم جدید با نام Form2.cs درست کنید. خب وارد فرم جدید بشید، و آیتم هایی که من در شکل زیر آوردم رو وارد کنید. ( بخاطر معماری ساده ای که در آموزش قبل برای بانک اطلاعاتیم قرار دادم در فرم ثبت نام فقط دو مقدار نام کاربری و رمز عبور را برای ثبت نام دریافت می کند شما می توانید بسته به سلیقه خود آیتم های دیگر را نیز اضافه کنید).

خب به فرم اول برگردیم و کد نویسی لازم برای باز کردن فرم 2 بعد از انتخاب دکمه ثبت نام را انجام میدیم:

Form a = new Form2();
  a.Show();

توضیحات: یک متغیر از نوع Form با نام a ایجاد کردم و مقدار form2 رو در اون قرار دادم، حالا در خط بعد گفتم متغیر a که درش مقدار فرم2 هستش رو نمایش بده.

Form2

و حالا نوبت به کد نویسی اصلی برنامه در فرم 2 می رسه. خب ما برای ابتدا باید مقادیر نام کاربری و رمز عبوری رو که کاربر دریافت می کنه به بانک اطلاعاتی بفرستیم برای این کار من از تکنولوژی LINQ استفاده می کنم. خب ابتدا پنجره Server Explorer رو باز کنید (با استفاده از کلید های ترکیبی (CTRL + W+ L)

و زیر منوهای بانک اطلاعاتیتون رو ظاهر کنید، حالا روی پوشه مربوط به Stored Procedures کلیک راست کرده و Add new Stored Procedure را انتخاب کنید.

پراسیجر

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

CREATE PROCEDURE dbo.regitpro  @Username nvarchar(50), @Password nvarchar(50)
AS
INSERT INTO tblitpro values(@Username,@Password)
Return

توضیحات:

دستور CREATE PROCEDURE یک پراسیجر می سازد.

دستور dbo.regitpro مشخص کننده نام پراسیجرمون خواهد بود.

و در ادامه خط اول دو تا فیلد مورد نظرمون همراه با نوعشون که در جلسه اول ساختیم.

INSERT INTO tblitpro values(@Username,@Password)

خب دستور اصلیمون هم خیلی واضح نوشته شده که insert کن داخل tblitpro (جدولی که جلسه پیش ساختیم) values هم مشخص کننده مقادیری که میخواهیم وارد کنیم.

و خط آخر هم که مقدار رو بازمیگردونه. و در آخر روی Update کلیک می کنیم.

حالا باید این پراسجر رو به جدولمون ربط بدیم، برای این کار از منو روی Add New Item کلیک می کنیم و در پنجره ظاهر شده LINQ to SQL Classes رو انتخاب می کنیم.

خب یک نام براش در نظر می گیریم،(به صورت پیش فرض یه اسم داره می تونید تغییرش ندید). خب بعد از این کار یک حالت دو ستونه ایجاد میشه که شما باید در ستون اولی یعنی سمت راست جدولتون رو از پنجره Server Explorer به داخل اون درگ کنید و برای ستون دومی در سمت چپ باید پراسیجرتون رو درگ کنید. خب LINQ رو ذخیره کرده و پس از اینکار به فرم2 برگردید.

LINQ

کدنویسی دکمه ثبت نام:

if (textBox1.Text != "" && textBox2.Text != "" && checkBox1.Checked == true)
            {
            }
            else
            {
                MessageBox.Show("خطا","لطفا تمام مقادیر را پر کرده و قوانین را بپذیرید");
            }

خب در اولین قسمت باید کاربر رو مجبور به ورود اطلاعات و تایید قوانین کنم. در شرط ذکر شده که اگر تکست باکس 1 و 2 خالی نبود و تیک گزینه فعال بود بیا یک کارهایی که در ادامه اشاره می کنم رو انجام بده در غیر اینصورت پیغام هشدار رو به کاربر نشون بده.

خب اون کارهایی که در صورت تایید شرط اول باید انجام شه چی هستش؟ باید به برنامه بگم که مقادیر ورودی در تکست باکس 1 و 2 رو به بانک اطلاعاتی ارسال کنه!

var a = new DataClasses1DataContext();
a.regitpro(textBox1.Text, textBox2.Text);
this.tblitproTableAdapter.Update(this.iTPRO_DBDataSet.tblitpro);

خب در خط اول من یک متغیر از نوع var تعریف کردم و مقدار linq رو درش قرار دادم

در خط دوم پراسیجر روی متغیر a اعمال کردم و در درون پرانتز مقدارهای ورودی username,password رو بهش دادم.

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

یک نکته: در صورتی که خط سوم رو بنویسید ولی شیوه ذخیره سازی درون بانک اطلاعاتی رو معرفی نکنید داده ها به صورت موقت در حافظه ذخیره می شند و وقتی برنامه رو ببندید مقادیر پاک می شوند برای جلوگیری از این کار، در پنجره Solution Explorer در مشخصات مربوط به فایل Dataset.XSD مقدار Copy to Output Directory را برابر Copy If newer قرار بدید، البته اگر بانک اطلاعاتیتون که با پسوند .mdf هستش نیز در اونجا قرار داشت اون رو هم به همین حالت تنظیم کنید!

Image

(البته توجه داشته باشید باید حتما تکست باکس ها رو به بانک اطلاعاتی بایند کرده باشید.) اما یک مشکل در صورتی که تکست باکس ها به بانک اطلاعاتی بایند شده باشند وقتی برنامه رو اجرا کنید مقادیر داخل تکست باکس ها پر هستند برای این کار باید در Form_Load برنامه دستورات زیر رو بنویسید:

textBox1.Clear();
textBox2.Clear();

نویسنده : ارسطو عباسی

منبع : انجمن تخصصی فناوری اطلاعات ایران

هرگونه نشر و کپی برداری بدون ذکر منبع و نام نویسنده دارای اشکال اخلاقی می باشد

آیا این مطلب را پسندیدید؟
ردیف عنوان قیمت
1 مدیریت کاربران در سی شارپ – قسمت اول رایگان
2 مدیریت کاربران در سی شارپ – قسمت دوم رایگان
هیچ نظری ارسال نشده است

برای ارسال نظر ابتدا به سایت وارد شوید

arrow