بخشی از مقاله
كتاب مهمترين ياور انسان در تمام مراحل بوده و خواهد بود شايد نحوه در دسترس بودن آن متفاوت باشد اما همان ساختار بي ريايي خود را حفظ خواهد كرد.
اين سايت امكاني است براي در اختيار گذاشتن كتابها در دسترس عموم تا بتوانند از اين طريق به اطلاعات خود افزوده و نتيجه مطلوب را از مطالعه آنها بگيرند.
بطور كلي سايت براي دريافت كتابها برنامه ريزي شده است همچنين امكان قرار دادن فايل را براي كاربران فراهم نموده است كه براي اين كار بازديد كنندگان بايد عضو سايت باشند.
پروژه داراي 21 صفحه بوده كه در آن از كدهاي HTML و زبان برنامه نويسي Asp.net همچنين كدهاي VB.net استفاده شده است.Asp.net و Vb.net جزء جديد ترين زبانهاي برنامه نويسي بوده كه از طرف شركت مايكروسافت به بازار روانه شده است اين زبانها با وجود اشياء زيادي كه در خود دارند كار برنامه نويسي را تا حدود زيادي ساده تر نموده اند .
زبانها فوق الذكر در مجموعه .Net موجود بوده و با نصب آن مي توانيد اين زبانها را به راحتي كار نماييد.
همچنين در اين برنامه از بانك اطلاعاتي Sql استفاده شده است كه براي ارتباط به آن حتما بايد Microsoft Sql Server را بر روي سيستم نصب نماييد.و درنهايت براي اجراي بدون مشكل آن احتياج به نصب Internet Information Service(IIS) داريد كه جزء نرم افزارهاي جانبي ويندوز بوده و مي توانيد به راحتي آن را از روي سي دي نصب ويندوز نصب نماييد.
كل فايلهاي پروژه داخل شاخه اي به نام FeeEBook قرار دارند و داخل اين شاخه دو شاخه App_data براي قرار گرفتن بانك اطلاعاتي و Book براي قرار گرفتن كتابها ايجاد شده اند.
امكانات زير براي طراحي سايت نظر قرار گرفته است .
بخش كاربري :
- بخشي از سايت مربوط به لينك هاي ساير سايت هاي ديگر كه كار مشابه سايت ما را انجام مي دهند و كتابخانه هاي الكترونيكي معروف باشد .
- بخش جستجو نيز براي كتابهاي مورد نظر كاربران قرار داده شده است.
- تبليغات ساير ارگانها و سازمانها نيز در سايت قرار داده شده است
بخش مديريتي :
- در صفحات سايت يك بخش كوچك براي ورود نام كاربري و رمز عبور مدير سايت و كاربران عضو در سايت گنجانده شده است . مدير سايت از اين طريق مي تواند به صفحات كنترلي دسترسي يابد و كاربران عضو مي توانند كتاب هاي جديد خود را در سايت بگذارند
- صفحه كنترلي مربوط به مدير سايت مي تواند حاوي امكاناتي مثل حذف كاربران ، حذف يا تغيير اطلاعات كتاب ها مي باشد .
- صفحه مربوط به كاربران عضو مي تواند داراي امكانات اضافه كردن كتاب باشد .
بانك اطلاعاتي موجود در برنامه با استفاده از Sql Server 2005 ايجاد شده است.
- جدا ول بكار رفته در بانك اطلاعاتي:
- جدول TbEbook اين جدول براي ذخيره اطلاعات كتابها ايجاد شده است و داراي هفت فيلد مختلف مي باشد.
- جدول TbUser اين جدول براي ذخيره اطلاعات كاربران ايجاد شده است وداراي پنج فيلد مختلف مي باشد.
فيلدهاي بكار رفته در جدول TbEbook:
- Name: از اين فيلد كه از نوع متن مي باشد براي ذخيره سازي نام كتابها استفاده
مي كنيم
- Pages :اين فيلد نيز از نوع متني با سايز 4 مي باشد كه تعداد صفحات كتاب مورد نظر را در خود نگهداري مي كند.
- NumClick:اين فيلد از نوع عددي بوده و تعداد دانلود هاي كتابها را نمايش مي دهد
- Describe : اين فيلد از نوع متني بوده و توضيحات مختصري را در مورد كتاب ارائه شده در خود نگه مي دارد.
- Subject:اين فيلد نيز از نوع متني بوده و شامل كلمات كليدي در مورد كتاب مي باشد اين كلمات به تشخيص مدير سيستم در بانك ذخيره مي شود همچنين كاربران نيز
مي توانند اين كار را انجام دهند.
- Writers:اين فيلد از نوع متني بوده ون ام نويسنده كتاب را در خود ذخيره مي كند.
o LocalAdd:اين فيلد از نوع متني بوده و نام فايل را در خود نگهداري ميكند نام فايل منظور نام فيزيكي فايل بر روي هارد مي باشد چون مسير قرار گرفتن فايلها ثابت و در شاخه Book قرار دارند.ما فقط نام كتاب را براي دانلود آن لازم داريم لذا در اين فيلد نام كامل فايل به همراه پسوند آن قرار مي گيرد تا در پروژه با اضافه شدن به آدرس ثابت بتوان به راحتي آن را دانلود نمود.
فيلدهاي بكار رفته در جدول TbUser:
o Name: از اين فيلد براي ذخيره كردن نام كاربر استفاده كردن و از نوع متني مي باشد.
o Family: نام خانوادگي كاربر مي باشد.
o Usern: براي ذخيره نام كاربري و از نوع متني مي باشد.
o Passwo : در اين فيلد متني كلمه عبور انتخابي كاربر قرار مي گيرد.
o Email : اين فيلد براي ذخيره آدرس ايميل كاربر استفاده مي شود.
در وب سايت ايجاد شده 21 صفحه وجود دارد تا بتوانند كليه كارهاي لازم را انجام دهند.
o صفحه اصلي:
o اين صفحه با عنوان Default.aspx موجود بوده و شامل لينك به ساير امكانات موجود در وب سايت مي باشد.
o در اين صفحه موارد زير قرار دارند كه هر كدام به صفحه اي ديگر متصل مي شوند.
o عضويت در سايت :اين بخش امكان عضويت كاربران را در سايت مي دهد.با زدن اين لينك شما به صفحه Enter.aspx وارد شده واطلاعات مربوطه را پر مي نماييد.
o ليست كتابها : اين بخش شامل ليست كاملي از كتابهاي موجود در وب سايت مي باشد كه اطلاعات كاملي از كتابها نمايش داده شده و يك لينك دانلود نيز براي دانلود هر كتاب قرار دارد.با كليك بر روي اين لينك صفحه Books.aspx باز مي شود
o ورود به سايت : در اين بخشی اعضا و مدير سايت امكان ورود به سايت را داشته و بسته به اينكه مدير سيستم باشد يا كاربر عادي سايت اطلاعات متفاوتي نمايش داده مي شود.صفحه اي كه با كليك روي اين قسمت ظاهر مي شود صفحه Login.aspx مي باشد
o پنج كتاب برتر : اين بخش شامل پنج كتابي است كه بيشترين دانلود را داشته اند صفحه مربوط به اين بخش نيز Top.aspx مي باشد.
o جستجو : در اين بخش امكان جستجوي كتابها را بر اساس كلمات كليدي كاربر انتخاب كرده ايم صفحه مر بوط به اين بخش با نام Search.aspx ذخيره شده است.
اصلي فقط حالت طراحي را دارند و فقط از تگهاي Html در آنها استفاده شده است.
در اين بخش ما فقط به صفحاتي كه داراي كدهاي Asp.net يا VB.Net مي باشند را توضيح مي دهيم.
صفحه جستجو (Search.aspx):
ابتدا در قسمت بالاي صفحات دو كتابخانه موجود در Vb.net را به صفحه اضافه مي كنيم با اين كار كدنويسي برنامه نيز خلاصه تر مي شود.
Imports System.Data
Imports System.Data.OleDb
Partial Class _Default
Inherits System.Web.UI.Page
سپس موارد مورد نياز براي انجام عمل جستجو را در خصوصيت PageLoad مي نويسيم اين بخش زماني اجرا مي شود كه صفحه در حال لود شدن باشد.
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
توضيح متغيرهاي استفاده شده:
ابتدا يك متغيير از نوع oleDbconnection تعريف مي كنيم.اين نوع براي اتصال به بانك استفاده مي شود.
Dim objcn As OleDbConnection
Dim da As OleDbDataAdapter
Dim ds As New DataSet
متغيرهاي اين بخش مورد اول براي گرفتن اطلاعات ورودي كاربر مورد بعد براي قرار دادن نوع ارتباط با بانك و در نهايت متغير بعد براي قرار دادن دستور Sql در آن مورد استفاده قرار مي گيرد.
Dim strgetsearch, strcn, StrSql As String
Dim newFind As DataTable
متغير اول براي قرار دادن تعداد فيلدهاي جدول مي باشد و از متغير بعدي براي حركت بر روي ركوردهاي جدول استفاده ميشود.
Dim getCountrows, Ix As Integer
چهار دستور Response كه در ادامه آمده است براي چاپ عنوان صفحه است كه ابتدا جمله نتايج جستجو را نمايش داده سپس به خط بعد مي رود در خط بعد يك خط با استفاده از تگ <hr> ايجاد كرده و در نهايت براي چاپ بقيه اطلاعات به خط بعدي مي رود.
Response.Write(" <h1>نتايج جستجو</h1>")
Response.Write("<br />")
Response.Write("<hr style=color: blue; height: 4px; font-size: 100%; width: 681px; />")
Response.Write("<br />")
در اين بخش با استفاده از دستور Request.form اطلاعات ارسالي از سوي كاربر را كه در يك Textbox در قسمت جستجوي صفحه اصلي وجود دارد را دريافت كرده و در يك متغيير ذخيره مي كند.
strgetsearch = Request.Form("Strsearch")
در اين بخش ابتدا چك مي شود كه كاربر موردي را براي جستجو وارد كرده است يا خير در صورتي كه اين كار را انجام داده باشد دستورات بعدي براي انجام عمل جستجو انجام مي شود.
If strgetsearch <> "" Then
در اين بخش ما موارد مورد نياز براي ارتباط به بانك را مشخص مي كنيم.نام توليد كننده بانك اطلاعاتي نحوه دسترسي به اطلاعات نام SqlServer كه بر روي سيستم نصب شده است و در نهايت مسير قرار گرفتن بانك اطلاعاتي.
strcn = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Data Source=SEPEHR\SQLEXPRESS;Initial File Name=D:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\book.mdf"
حال با استفاده از مورد فوق مي توانيم كانكشن را ايجاد نماييم اين كار را با استفاده از عملگر New انجام مي دهيم.
objcn = New OleDbConnection(strcn)
پس از ايجاد كانكشن آن را با استفاده از متد Open باز مي كنيم.
objcn.Open()
براي انجام عمليات جستجو لازم داريم تا به جداول مورد نياز در داخل بانك دسترسي پيدا كنيم.براي اين كار اولا نياز به يك دستور Sql داريم تا شرايط نمايش جدول را در آن مشخص كنيم در دستور زير ما تمام فيلدهاي جدول را لازم داريم براي مواردي كه فيلد Subject حاوي مواردي باشد شبيه به اطلاعاتي كه كاربر وارد كرده براي اين كار از عملگر Like استفاده كرده ايم.
StrSql = "select * from tbebook where subject like '%" & strgetsearch & "%'"
حال با استفاده از دستور Sql و شي كه براي كانكشن ايجاد كرديم يك ديتا آداپتر را ايجاد مي كنيم .
da = New OleDbDataAdapter(StrSql, objcn)
ديتا آداپتر ايجاد شده را براي جدول TbEbook اجرا مي كنيم و جدول بدشت آمده را بر اساس دستور Sql فوق داخل يك ديتا ست قرار مي دهيم.
da.Fill(ds, "tbebook")
براي دسترسي به اطلاعات موجود در ديتا ست احتياج به يك نوع متغير از نوع Datatable داريم كه در زير آن را ايجاد كرده ايم.
newFind = New DataTable
در زير اطلاعات كامل جدول موجود در ديتاست را به جدول فوق انتقال مي دهيم.
newFind = ds.Tables(0)
در اين بخش تعداد سطرهاي جدول را بدست مي آوريم تا در ادامه بررسي كنيم كه اگر مخالف صفر بود يعني موردي پيدا شده و اطلاعات را نمايش دهد اما اگر مساوي صفر بود يعني اطلاعاتي پيدا نشده و پيغام مناسب مبني بر عدم پيدا كردن اطلاعات نمايش داده شود.
getCountrows = newFind.Rows.Count
If getCountrows <> 0 Then
در اين بخش ابتدا با استفاده از تگ <table> اقدام به ايجاد جدولي براي نمايش اطلاعات
مي كنيم.
Response.Write("<table border=1 style=vertical-align: middle; width: 142px; text-align: center>")
در قسمت زير اطلاعات بدست آمده از جدول را در ستونهاي ايجاد شده توسط دستور Response قرار مي گيرد نحوه دسترسي به عناصر جدول به اين ترتيب است كه با استفاده از متد Row از متغيير Newfind به سطر مورد نظر مي رويم كه در زير اين كار با استفاده از متغيير Ix حلقه For انجام مي شود.سپس با استفاده از متد Item مربوط به Rows مي توانيم به تك تك فيلدهاي جدول دسترسي پيدا كنيم ترتيب شماره گزاري فيلدها نيز از عدد صفر آغاز مي شود.
For Ix = 0 To getCountrows - 1
Response.Write("<tr>")
Response.Write("<td>")
براي نمايش نام كتاب
Response.Write(newFind.Rows(Ix).Item(0))
Response.Write("</td>")
Response.Write("<td>")
براي نمايش تعداد صفحات كتاب
Response.Write(newFind.Rows(Ix).Item(1))
Response.Write("</td>")
Response.Write("<td>")
براي نمايش تعداد دانلودهاي كتاب
Response.Write(newFind.Rows(Ix).Item(2))
Response.Write("</td>")
Response.Write("<td>")
براي نمايش توضيحاتي مختصر در مورد كتاب
Response.Write(newFind.Rows(Ix).Item(3))
Response.Write("</td>")
Response.Write("<td>")
براي نمايش نام نويسنده كتاب
Response.Write(newFind.Rows(Ix).Item(5))
Response.Write("</td>")
Response.Write("<td>")
براي نمايش لينك دانلود در اين بخش اطلاعات فيلد آخر جدول كه حاوي نام آن بود خوانده شده و به قسمت Href تگ <a> كه براي ايجاد لينك از آن استفاده مي كنيم نسبت داده شده است آدرس سايت هم كه ثابت است در قسمت اول قرار گرفته و بدين ترتيب با كليك كردن كاربر بر روي لينك دانلود به فايل مورد نظر منتقل شده و امكلن دانلود آن را داريم.
Response.Write("<a href=http:\\localhost\freeebook\book\" & newFind.Rows(Ix).Item(6) & ">دانلود </a>")
Response.Write("</td>")
Next Ix
Response.Write("</table>")
Else
اين بخش زماني اجرا مي شود كه اطلاعات مورد نظر در جدول وجود نداشته باشد در اينصورت پيغام زير نمايش داده شده و به كاربر اعلام مي كند.
Response.Write("كتاب مورد نظر شما مو جود نمي باشد")
End If
پس از انجام عمليات مربوط به جستجو شي ايجاد شده براي اتصال به بانك را مي بنديم.اين كار با استفاده از متد Open شي Objcn انجام مي شود.
objcn.Close()
Else
اين بخش در صورتي انجام مي شود كه كاربر اطلاعاتي را براي جستجو وارد نرده باشد.
Response.Write("لطفا يك مورد را براي جستجو وارد نماييد")
End If
End Sub
End Class
صفحه مربوط به نمايش پنج كتاب برتر (Top.aspx):
اين صفحه بر اساس تعداد دانلودها پنج كتابي را كه بيشترين دانلود را داشته اند را نمايش
مي دهد.براي اين كار نيز ابتدا با استفاده از يك دستور Sql جدول را بر اساس فيلد numClick كه حاوي تعداد دانلودها مي باشد بطور نزولي مرتب كرده و پنج مورد اول را نمايش مي دهيم.
قسمت اول كدها شبيه به مورد قبلي بوده يعني ابتدا كتابخانه هاي مورد نياز را اضافه كرده و كد برنامه را در قسمت لود صفحه وارد كرده ايم.