0% found this document useful (0 votes)
4 views9 pages

Library System

Uploaded by

alisadeghi.xavi
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
4 views9 pages

Library System

Uploaded by

alisadeghi.xavi
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 9

‫بسم الله الرحمن الرحیم‬

‫آموزشگاه تحلیل داده‬

‫تخصصی ترین مرکز برنامه نویسی و دیتابیس در ایران‬

‫کلیه حقوق این پروژه متعلق به آموزشگاه تحلیل داده می باشد‪.‬‬

‫با سالم و خسته نباشید خدمت دوستان وکاربران سایت تحلیل داده‪،‬در این پروژه ما قصد داریم تا یک‬

‫سیستم ساده مدیریت کتابخانه را طراحی و پیاده سازی کنیم‪.‬‬

‫برای ساخت این پروژه کوچک‪ ،‬به نرم افزارهای زیر احتیاج خواهیم داشت‪:‬‬

‫‪SQL Server 2014‬‬ ‫‪‬‬

‫‪Visual Studio 2013‬‬ ‫‪‬‬

‫فایل ‪ Bacup‬دیتابیس نیز همراه پروژه آپلود می شود‪،‬میتوانید بعد از دانلود آن را ‪ Restore‬کنید‪.‬‬

‫نام کاربری و گذرواژه پروژه به صورت زیر می باشد‪:‬‬

‫نام کاربری‪ admin:‬گذرواژه‪321:‬‬

‫ابتدا ‪ Sql Server‬را باز کرده و یک دیتابیس بنام ‪ LIBRARYDBF‬ایجاد کنید‪،‬برای آموزش ایجاد دیتا بیس و ساخت‬

‫جداول میتوانید از لینک زیر استفاده کنید‪.‬آموزش دیتابیس‬

‫ابتدا وارد دیتابیس شده و جداول زیر را ایجاد کنید‪:‬‬

‫‪ : tblBooks‬این جدول اطالعات مربوط به کتابها را در خود نگه می دارد‪.‬‬

‫‪ : tblCategory‬این جدول اطالعات مربوط به رده بندی کتابها را در خود نگه می دارد‪.‬‬

‫‪ : tblEmployee‬این جدول اطالعات مربوط به کارمندان کتابخانه را در خود نگه می دارد‪.‬‬

‫‪ : tblIssue_Books‬این جدول اطالعات مربوط به کتاب هایی که به اعضا امانت داده شده را در خود نگه می دارد‪.‬‬

‫‪ : tblMembers‬این جدول اطالعات مربوط به اعضا کتابخانه را در خود نگه می دارد‪.‬‬

‫‪ : tblUsers‬این جدول اطالعات مربوط به ‪ login‬شامل نام کاربری و گذرواژه و ‪ ...‬کاربران کتابخانه را در خود نگه می‬

‫دارد‪.‬‬

‫آدرس آموزشگاه ‪ :‬تهران ‪ -‬خيابان شريعتی ‪ -‬باال تر از خيابان ملک ‪ -‬جنب بانک صادرات ‪ -‬پالک ‪ 165 -‬واحد‪7‬‬
‫‪88146323 - 88446780 - 88146330‬‬
‫بعد از دانلود پروژه و ‪ Restore‬کردن دیتابیس برای اینکه پروژه شما درست کار کند باید ‪ ConnectionString‬آن را‬

‫مانند زیر عوض کنید‪.‬‬

‫‪ .1‬ابتدا بر روی ‪ LibrarySystem.sln‬دابل کلیک کنید تا پروژه اجرا شود‪.‬‬

‫در این مرحله از منوی ‪ View‬گزینه ‪ Server Explorer‬را بزنید و سپس مانند شکل زیر بر روی‬

‫‪ Data Connections‬کلیک راست کرده و گزینه ی ‪ Add Connection‬را بزنید‪.‬‬

‫سپس مانند شکل زیر عمل کنید‪.‬‬

‫آدرس آموزشگاه ‪ :‬تهران ‪ -‬خيابان شريعتی ‪ -‬باال تر از خيابان ملک ‪ -‬جنب بانک صادرات ‪ -‬پالک ‪ 165 -‬واحد‪7‬‬
‫‪88146323 - 88446780 - 88146330‬‬
‫بعد از کلیک بر روی دکمه ‪ Advanced‬مانند شکل زیر ‪ ConnectionString‬را انتخاب کرده و کپی کنید و بر‬

‫روی ‪ OK‬کلیک کنید‪.‬‬

‫آدرس آموزشگاه ‪ :‬تهران ‪ -‬خيابان شريعتی ‪ -‬باال تر از خيابان ملک ‪ -‬جنب بانک صادرات ‪ -‬پالک ‪ 165 -‬واحد‪7‬‬
‫‪88146323 - 88446780 - 88146330‬‬
‫سپس در پنل سمت راست(‪ )Solution Explorer‬کالس ‪( ConnectionString.cs‬قسمت اول) را باز کرده و‬

‫سپس مانند شکل زیر در قسمت دوم ‪ Past‬کنید‪.‬‬

‫آدرس آموزشگاه ‪ :‬تهران ‪ -‬خيابان شريعتی ‪ -‬باال تر از خيابان ملک ‪ -‬جنب بانک صادرات ‪ -‬پالک ‪ 165 -‬واحد‪7‬‬
‫‪88146323 - 88446780 - 88146330‬‬
‫بعد از ‪ Past‬کردن اگر با خطا مواجه شدید مانند شکل باال به اول ‪ ConnectionString‬عالمت @ را اضافه‬

‫کنید‪.‬‬

‫در ادامه به ساخت فرم ها و توضیح هر کدام میپردازیم‪.‬‬

‫‪: frmLogin‬در ابتدا یک فرم ‪ Login‬برای ورود کاربران و اعضا و کارمندان مانند تصویر زیر ایجاد میکنیم‪.‬‬

‫بعد از ایجاد فرم بر روی دکمه ورود دابل کنید تا وارد قسمت کد نویسی شوید‪.‬در شکل زیر قسمت های مربوط‬

‫به کد نویسی هر یک از دکمه های روی فرم را مشاهده می کنید‪.‬‬

‫آدرس آموزشگاه ‪ :‬تهران ‪ -‬خيابان شريعتی ‪ -‬باال تر از خيابان ملک ‪ -‬جنب بانک صادرات ‪ -‬پالک ‪ 165 -‬واحد‪7‬‬
‫‪88146323 - 88446780 - 88146330‬‬
‫در قسمت مربوط به کدهای ‪ Login‬ابتدا بررسی میکنیم که کادرهای متن خالی نباشند و سپس محتویات‬

‫کادرهای متن را به دیتابس میفرستیم تا ببینیم این کاربر در سیستم ثبت شده یا نه‪،‬اگر ثبت شده بود‬

‫اطالعات مربوط به کاربر را گرفته و مانند شکل زیر در کار متن فرم های بعدی وارد میکنیم‪،‬تا بررسی کنیم که‬

‫اگر کاربر معمولی بود به قسمت های مربوط به مدیریت و کارمندی دسترسی نداشته باشد و اگر کارمند بود به‬

‫قسمت مدیریت دسترسی نداشته باشد‪،‬در اینجا ما میتوانستیم در قسمت ‪ Load‬هر کدام از فرم ها هم این‬

‫کار را انجام دهیم و دسترسی کاربران به بخش های مختلف را مدیریت کنیم ولی از این روش استفاده کردیم تا‬

‫شما دوستان یاد بگیرین که از این طریق هم میشه کارهای کاربران را مدیریت کنیم‪.‬کدها مربوط به دکمه های‬

‫‪ Close,Minimize‬و انصراف هم پیچیدگی خاصی ندارند بنابراین از توضیح آنها چشم پوشی میکنم‪ .‬بعد از‬

‫تعیین سطح دسترسی کاربر‪ ،‬کاربر را به فرم ‪ frmMain‬میفرستیم‪.‬‬

‫در فرم ‪ frmMain‬دو کادر متن داریم که در هنگام اجرا دیده نمیشوند‪،‬این دو کادر متن همان کادر متن هایی‬

‫هستند که در بخش ‪ Login‬مقدار دهی کردیم‪.‬در این فرم تنها کاری که باید انجام بدهیم این هستش که به‬

‫آدرس آموزشگاه ‪ :‬تهران ‪ -‬خيابان شريعتی ‪ -‬باال تر از خيابان ملک ‪ -‬جنب بانک صادرات ‪ -‬پالک ‪ 165 -‬واحد‪7‬‬
‫‪88146323 - 88446780 - 88146330‬‬
‫ازای هر فرم یک منو طراحی می کنیم برای افزودن منو از ‪ ToolBox‬یک ‪ MenuStrip‬را ‪ Drag‬کرده ودر فرم‬

‫‪ Drop‬میکنیم و سپس هر آیتم منو را به فرم مربوطه میفرستیم‪،‬برای این کار مانند زیر عمل میکنیم‪.‬‬

‫‪ :frmBookInfo‬در این فرم اطالعات کتاب مانند عنوان کتاب‪،‬نام نویسنده‪،‬ناشر‪،‬رده و تعداد‬

‫را میتوانیم وارد کرده و آن را در دیتابیس ذخیره کنیم و یا در صورت وجود در دیتابیس ‪،‬یک‬

‫کتاب را ویرایش و یا حذف کنیم‪.‬‬

‫برای ذخیره کردن کتاب در دیتابیس بر روی دکمه ذخیره دابل کلیک کنید تا وارد قسمت کد‬

‫نویسی شوید‪.‬در این قسمت ابتدا باید برای کتاب یک شناسه منحصر به فرد ایجاد کنیم که‬

‫برای این کار از یک تابع به نام ‪ GetCode‬استفاده میکنیم که به صورت زیر است‪:‬‬
‫)‪public static string GetCode(int maxSize‬‬
‫{‬
‫;]‪char[] chars = new char[70‬‬
‫;)(‪chars = "123456789".ToCharArray‬‬
‫;]‪byte[] bytes = new byte[1‬‬
‫;)(‪RNGCryptoServiceProvider crypto = new RNGCryptoServiceProvider‬‬
‫;)‪crypto.GetNonZeroBytes(bytes‬‬
‫;]‪bytes = new byte[maxSize‬‬
‫;)‪crypto.GetNonZeroBytes(bytes‬‬
‫;)(‪StringBuilder results = new StringBuilder‬‬
‫)‪foreach (byte b in bytes‬‬
‫{‬
‫;)])‪results.Append(chars[b % (chars.Length‬‬
‫}‬
‫;)(‪return results.ToString‬‬
‫}‬
‫سپس در ابتدا تمامی کادرهای متن را بررسی میکنیم که خالی نباشند و در آخر اطالعات را در دیتابیس به‬
‫صورت زیر ذخیره میکنیم‪:‬‬
‫‪try‬‬
‫{‬
‫;)‪txtBookId.Text = "B" + GetCode(5‬‬
‫;)‪connect = new SqlConnection(conn.connectString‬‬
‫;)(‪connect.Open‬‬
‫‪string insert = "insert into tblBooks(book_id, book_title,author,publisher,‬‬
‫;")‪category,quantity)values(@b_id,@b_t,@au,@pu,@cat,@qua‬‬

‫آدرس آموزشگاه ‪ :‬تهران ‪ -‬خيابان شريعتی ‪ -‬باال تر از خيابان ملک ‪ -‬جنب بانک صادرات ‪ -‬پالک ‪ 165 -‬واحد‪7‬‬
‫‪88146323 - 88446780 - 88146330‬‬
cmd = new SqlCommand(insert, connect);
cmd.Parameters.Add(new SqlParameter("@b_id", SqlDbType.VarChar)).Value = txtBookId.Text;
cmd.Parameters.Add(new SqlParameter("@b_t", SqlDbType.VarChar)).Value = txtTitle.Text;
cmd.Parameters.Add(new SqlParameter("@au", SqlDbType.VarChar)).Value = txtAuthor.Text;
cmd.Parameters.Add(new SqlParameter("@pu", SqlDbType.VarChar)).Value = txtPublisher.Text;
cmd.Parameters.Add(new SqlParameter("@cat", SqlDbType.VarChar)).Value = cmbCategory.SelectedItem;
cmd.Parameters.Add(new SqlParameter("@qua", SqlDbType.Int)).Value = nudQuantity.Value;
cmd.ExecuteNonQuery();
MessageBox.Show("Book info successfully saved....!", "Book Record", MessageBoxButtons.OK,
MessageBoxIcon.Information);
ClearAll();
//cmd.Dispose();
connect.Close();
}
catch(SqlException ex)
{
MessageBox.Show(ex.Message.ToString(), "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
‫دراین دکمه کار خاصی انجام نمیدهیم‬،‫بر روی دکمه جدید دابل کلیک کنید تا به قسمت کدنویسی وارد شوید‬

.‫فقط تمامی کادرهای متن را خالی میکنیم تا ماربر بتواند کتاب جدیدی را ایجاد کند‬

‫کدهای مربوط به دکمه ویرایش مانند دکمه ذخیره می باشد ابتدا باید کادر های متن را بررسی کنیم که خالی‬

‫نباشند سپس عملیات درج در دیتابیس را مانند دکمه ذخیره مینویسیم با این تفاوت که به جای دستور‬

.‫ استفاده میکنیم‬Update ‫ از دستور‬Insert into

‫در کدهای مربوط به دکمه حذف ابتدا بررسی میکنیم که شناسه کتاب خالی نباشد و بعد کتاب را از دیتابیس‬

.‫حذف می کنیم‬

‫ دارد که‬DataGridView ‫ را صدا میزنیم که فقط یک‬frmBookRecords ‫در رویداد دکمه ی مشاهده فرم‬

‫در رویداد‬.‫ فرم این دیتا گرید را پر میکنیم و به کاربر نمایش میدهیم‬Load ‫در رویداد‬

‫ را پر میکنیم تا بتوانیم‬frmBookInfo ‫ گرید ویو کادرهای متن فرم‬dataGridView1_RowMouseClick

.‫اطالعات مربوط به کتابها را ویرایش و یا حذف کنیم‬

.‫ در این فرم شما میتوانید رده بندی های مختلفی را اضافه کرده و یا حذف و ویرایش کنید‬:frmCategory

.‫ می باشد بنابر این دیگه توضیحشون نمیدم‬frmBookInfo ‫کدهای مربوط به این فرم نیز مانند فرم‬

7‫ واحد‬165 - ‫ پالک‬- ‫ جنب بانک صادرات‬- ‫ باال تر از خيابان ملک‬- ‫ خيابان شريعتی‬- ‫ تهران‬: ‫آدرس آموزشگاه‬
88146323 - 88446780 - 88146330
‫‪ :frmEmployee‬این فرم نیز فرم مربوط به مدیریت کارمندان می باشد که میتوانید کارمندان را حذف و یا‬

‫اضافه کنید‪،‬کدهای مربوط به این فرم نیز مانند فرم ‪ frmBookInfo‬می باشد بنابر این دیگه توضیحشون‬

‫نمیدم‪.‬‬

‫‪ :frmIssue‬در این فرم کارمند می تواند به اعضای کتابخانه کتاب را امانت داده ویا امانات را به کتابخانه‬

‫بازگرداند‪.‬‬

‫‪ :frmMember‬این فرم مربوط به حذف و اضافه و ویرایش اعضا می باشد‪ ،‬کدهای مربوط به این فرم نیز‬

‫مانند فرم ‪ frmBookInfo‬می باشد بنابر این دیگه توضیحشون نمیدم‪.‬‬

‫‪ :frmUsers‬این فرم مربوط به حذف و اضافه و ویرایش کاربران کتابخانه می باشد‪ ،‬کدهای مربوط به این فرم‬

‫نیز مانند فرم ‪ frmBookInfo‬می باشد بنابر این دیگه توضیحشون نمیدم‪.‬‬

‫آدرس آموزشگاه ‪ :‬تهران ‪ -‬خيابان شريعتی ‪ -‬باال تر از خيابان ملک ‪ -‬جنب بانک صادرات ‪ -‬پالک ‪ 165 -‬واحد‪7‬‬
‫‪88146323 - 88446780 - 88146330‬‬

You might also like