بیایید یک برنامه پایگاه داده ساده ایجاد کنیم که اطلاعات مربوط به جدول "Tourists" و یک رکورد جدول "Tourist Information" را از پایگاه داده Microsoft Access مرتبط با رکورد فعلی جدول Tourists نشان دهد.

برای این کار ، بیایید یک برنامه خالی از ویندوز ایجاد کنیم. ظاهر محیط

توسعه در شکل 39 نشان داده شده است.

شکل: 39. برنامه خالی

در شکل 39 ، گروه اجزای "داده" برجسته شده است که شامل اجزای دسترسی و دستکاری داده ها است.

اتصال داده های پایگاه داده به فرم توسط م componentلفه Binding Source انجام می شود. بیایید آن را به فرم منتقل کنیم. پس از قرار دادن آن بر روی فرم ، محیط توسعه به شکل زیر در می آید (شکل 40).

شکل: 40. منبع اتصال اجزاent در فرم

این م visualلفه بصری نیست ، بنابراین در یک صفحه دیگر نمایش داده می شود. خاصیت اصلی م componentلفه ، ویژگی DataSource است که به منبع داده اشاره می کند. به طور پیش فرض ، ویژگی خالی است ، بنابراین باید مقدار آن را شکل دهید. با انتخاب این ویژگی ، پنجره زیر در پنجره Properties ظاهر می شود (شکل 41).

شکل: 41. لیست منابع داده

لیست در حال حاضر خالی است ، بنابراین شما باید یک منبع داده جدید با انتخاب دستور Add Project Data Source ایجاد کنید تا یک منبع داده جدید ایجاد کنید و به آن متصل شوید. کادر گفتگوی زیر ظاهر می شود (شکل 42).

شکل: 42. لیست منابع داده

این گفتگو منابع زیر را برای منابع زیر فراهم می کند:

پایگاه داده - بانک اطلاعاتی ؛

سرویس - سرویس نوعی سرویس است که داده را فراهم می کند. اغلب این یک سرویس وب است.

Object - یک شی برای انتخاب یک شی که داده ها و اشیا را برای کار تولید می کند.

در مورد ما ، شما باید مورد "پایگاه داده" را انتخاب کنید. پنجره انتخاب اتصال داده ظاهر می شود (شکل 43).

شکل: 43. انتخاب اتصال داده

هدف از این گفتگو ایجاد یک رشته اتصال است که پارامترهای اتصال موتور ADO را توصیف می کند ، مانند نوع پایگاه داده ، مکان آن ، نام کاربری ، ابزارهای امنیتی و غیره.

لیست کشویی گفتگو شامل تمام اتصالات ایجاد شده قبلی است. اگر اتصال مورد نیاز در لیست نیست ، باید از دکمه "اتصال جدید" استفاده کنید. فشار دادن دکمه منجر به ظاهر گفتگوی زیر می شود (شکل 44).

در این گفتگو ، نوع منبع داده (در این مورد Microsoft Access) ، نام پایگاه داده (در این مورد ، نام و محل پرونده پایگاه داده) ، نام کاربری و رمز عبور مورد استفاده برای اتصال به پایگاه داده را انتخاب می کنید. دکمه "Advanced" به شما امکان می دهد تعداد زیادی پارامتر مربوط به جزئیات مختلف مکانیزم ADO را تنظیم کنید. با استفاده از دکمه "اتصال اتصال" مطمئن می شوید که پارامترهای وارد شده صحیح بوده و اتصال کار می کند.

شکل: 44. ایجاد اتصال جدید

آخرین مرحله گفتگو ، انتخاب آن جداول یا سایر اشیا database پایگاه داده است که در این منبع داده مورد نیاز است. پنجره انتخاب در شکل 45 نشان داده شده است.

شکل: 45. انتخاب جداول مورد نیاز

در این پنجره ، جداول "گردشگران" و "اطلاعات گردشگران" انتخاب می شوند. از آنجا که هیچ چیز دیگری به غیر از جداول در پایگاه داده ایجاد نشده است ، فقط جداول در شکل 45 نمایش داده می شوند. این کار ایجاد منبع داده را کامل می کند. وقتی روی Finish کلیک می کنید ، یک DataSet در کنار BindingSource روی فرم ظاهر می شود.

اکنون داده های متصل شده در بالا باید روی فرم نمایش داده شوند. ساده ترین راه برای نمایش داده ها استفاده از م componentلفه DataGridView از گروه م componentلفه های داده است. این ملفه بصری است و روی فرم به این شکل است (شکل 46).

شکل: 46. \u200b\u200bکامپوننت DataGridView

بلافاصله پنجره تنظیمات م componentلفه ظاهر می شود که گزینه های آن را برای ویرایش داده تعیین می کند: "فعال کردن افزودن" ، "فعال کردن ویرایش" ، "فعال کردن حذف" ؛ توانایی تغییر توالی ستونها: "فعال کردن مرتب سازی مجدد ستون" ؛ و همچنین توانایی لنگر انداختن در ظرف اصلی.

برای اینکه م componentلفه داده ها را نمایش دهد ، لازم است یک منبع داده را در لیست کشویی انتخاب کنید. انتخاب لیست کشویی منجر به ظاهر گفتگوی زیر می شود (شکل 47).

شکل: 47. انتخاب منبع داده برای DataGridView

در این حالت ، ما جدول "گردشگران" را به عنوان منبع داده انتخاب کرده ایم. این انتخاب صفحه نمایش را به شرح زیر تغییر می دهد (شکل 48).

شکل: 48. Component DataGridView ساختار جدول را نشان می دهد

در شکل می بینید که یک م componentلفه دیگر BindingSource و یک م Tableلفه TableAdapter وجود دارد که با جدول Tourists کار می کند. لطفاً توجه داشته باشید که در زمان طراحی یا هنگام توسعه ، داده های جدول نمایش داده نمی شوند.

اکنون شما باید داده ها را از جدول پیوند گردشگر پیوند داده شده نمایش دهید. برای این کار ، یکی دیگر از م componentلفه های DataGridView را روی فرم قرار دهید و موارد زیر را به عنوان منبع داده انتخاب کنید (شکل 49).

شکل: 49. انتخاب منبع داده برای DataGridView دوم

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

شکل: 50. برنامه پایگاه داده در محل کار

پیمایش از طریق داده ها با استفاده از کلیدهای جهت دار ناخوشایند است. برای ساده سازی پیمایش از طریق داده ها ، یک م navigationلفه BindingNavigator وجود دارد. بیایید آن را روی فرم قرار دهیم (شکل 51).

شکل: 51. م componentلفه BindingNavigator روی فرم

این م componentلفه به شما امکان می دهد بین سوابق جدول حرکت کنید ، ردیف های جدول را اضافه و حذف کنید. عملکرد و شکل ظاهری م componentلفه قابل تنظیم است زیرا نوار منوی ToolStripContainer است.

خاصیتی که جدول مورد نظر جهت هدایت را مشخص می کند ، خاصیت BindingSource است. مقدار این ویژگی را روی TouristBindingSource تنظیم کنید. در عمل ، م componentلفه به این شکل است (شکل 52).

شکل: 52. م componentلفه BindingNavigator در محل کار

ویرایش داده ها در سلول های م componentلفه DataGridView با تنظیمات مناسب امکان پذیر است ، اما ناخوشایند و منطقی نیست. به طور خاص ، بررسی مقادیر وارد شده برای وجود خطا دشوار است. بنابراین ، برای جدول "جهانگردان" ، ما یک فرم صفحه ایجاد خواهیم کرد که امکان نمایش داده ها در اجزای TextBox و ویرایش آنها را فراهم می کند. برای انجام این کار ، یک ظرف از نوع Panel بر روی فرم قرار داده و روی آن سه جز Text TextBox به شرح زیر قرار دهید (شکل 53).

شکل: 53. صفحه نمایش برای ویرایش سوابق جدول "جهانگردان"

اکنون لازم است که اجزای TextBox را به قسمتهای مربوط به جدول "گردشگران" متصل کنید. برای این منظور از خاصیت گروه DataBindings - Advanced ، که در شکل 54 نشان داده شده است ، استفاده می کنیم.

شکل: 54. ویژگی "DataBindings - Advanced"

انتخاب این ویژگی منجر به ظاهر کادر گفتگوی نشان داده شده در شکل 55 می شود. این گفتگو به شما امکان می دهد تا نه تنها داده ها را متصل کنید ، بلکه همچنین رویدادی را تنظیم می کنید که داده ها در آن به روز می شوند و همچنین هنگام نمایش داده ها ، آنها را قالب بندی می کند.

برای جز component برتر TextBox در لیست کشویی Binding ، منبع داده "touristBmdmgSource" و قسمت منبع - "Lastname" را انتخاب کنید. برای م componentsلفه های TextBox وسط و پایین ، به ترتیب منبع داده و فیلدهای "Name" و "Patronymic" را انتخاب کنید.

برنامه توسعه یافته در عمل به شرح زیر است (شکل 56).

شکل: 55. جعبه گفتگو برای ویژگی "DataBindings - Advanced"

شکل: 56. اتصال داده ها به اجزای بصری

با این حال ، هنگام ایجاد تغییرات ، تمام داده های جدید فقط در فرم باقی می مانند. آنها در پایگاه داده ذخیره نمی شوند و البته با فراخوانی مجدد برنامه ، دیگر وجود نخواهند داشت. این به این دلیل است که داده ها در DataSet بارگذاری شده اند ، که یک کپی از جدول در حافظه است. تمام اقدامات با این نسخه انجام می شود. برای اینکه تغییرات در پایگاه داده منعکس شود ، باید روش Update کلاس TableAdapter را اجرا کنید. بنابراین ، در برنامه توسعه یافته لازم است که دکمه Update را قرار داده و کد برنامه زیر را برای کنترل کننده رویداد Click بنویسید:

touristTableAdapteгUpdate (bDTur_firmDataSet)؛ info_about_touristsTableAdapter.Update (bDTur_firmDataSet)؛

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

توسعه برنامه ای برای کار با پایگاه داده

رزا گنانووا

مدرس گروه رشته های عمومی آموزشی

دانشگاه فناوری ملی تحقیقات کازان

روسیه ، کازان

توضیحات

در این مقاله روشهای دستیابی به پایگاه داده و رابطهای برنامه نویسی مورد استفاده در این روشهای دسترسی مورد بحث قرار گرفته است. ادغام برنامه های Visual C # با Microsoft SQL Server 2012 DBMS در نظر گرفته شده است. توسعه سیستم اطلاعاتی "آژانس مسافرتی" به عنوان یک مثال در نظر گرفته شده است.

چکیده

این مقاله روش های دستیابی به پایگاه های داده و رابط های نرم افزاری مورد استفاده در این روش های دسترسی را بررسی می کند. ما ادغام برنامه های Visual C # را با سرور پایگاه داده Microsoft SQL Server 2012 در نظر می گیریم. به عنوان نمونه توسعه سیستم اطلاعاتی "آژانس گردشگری" در نظر گرفته شده است.

کلید واژه ها: پایگاه داده ، SQL Server ، برنامه ، کاربران ، کنترل ، پرس و جو.

کلید واژه ها: پایگاه داده ، SQL Server ، برنامه ، کاربران ، عنصر کنترل ، پرس و جو.

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

هنگام توسعه یک سیستم اطلاعاتی ، دو وظیفه اصلی باید حل شود:

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

پایگاه داده "آژانس مسافرتی" در Microsoft SQL Server 2012 ایجاد شده است. این پایگاه اطلاعاتی را در مورد مشتریان این آژانس مسافرتی (گردشگران) ، تورهایی که ارائه می دهد ، در مورد ثبت نام و پرداخت کوپن ذخیره می کند. در مرحله طراحی پایگاه داده ، جداول "جهانگردان" ، "تورها" ، "کوپن" ، "فصول" ، "پرداخت" ایجاد می شود. پیوندها بین جداول ایجاد می شوند.

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

امنیت SQL Server بر دو مفهوم بنا شده است: احراز هویت و مجوز. سرپرست سیستم امنیتی SQL Server برای هر کاربر یک شی ورود به سیستم جداگانه ایجاد می کند. این شی شامل نام حساب کاربری SQL Server ، رمز ورود ، نام کاملاً واجد شرایط و سایر ویژگی هایی است که دسترسی به پایگاه های داده SQL Server را کنترل می کنند. با اتصال به SQL Server ، کاربر به پایگاه هایی که حساب خود در آن ثبت شده دسترسی پیدا می کند. برای ثبت یک حساب با یک پایگاه داده خاص ، مدیر سیستم یک نام کاربری پایگاه داده در آنجا ایجاد می کند و آن را با یک حساب خاص مرتبط می کند. مدیر سیستم امتیازات خاصی را به کاربران می دهد. یک مدیر فروش می تواند پس از فروش تور بعدی ، در جدول "گردشگران" ، "تورها" تغییراتی ایجاد کند و ستون "تعداد_جایگاه ها" را در جدول "تورها" تغییر دهد. یک کارمند آژانس مسافرتی می تواند در جداول "فصل ها" و "تورها" تغییراتی ایجاد کند. حسابدار و صندوقدار - در جدول "پرداخت".

با باز کردن پنجره های ویژگی ها برای کاربر مربوطه می توانید مجوزهایی را در SQL Server Management Studio اعطا کنید. همچنین می توانید مجوزها را با استفاده از دستور GRANT نشان دهید. نمونه هایی از اعطای اختیار به مدیر. عبارت زیر به کاربر Menedger حق مشاهده ، تغییر جدول Tourists ، درج ردیف های جدید و حذف داده های منسوخ را می دهد.

آژانس مسافرتی استفاده کنید

اعطای مجوز ، به روزرسانی ، وارد کردن ، حذف

در مورد گردشگران

دستورالعمل مشابهی برای کار با جدول "Tours" ایجاد شده است. برای اینکه به مدیر حق تغییر فقط یک ستون از جدول "Tours" داده شود ، نام ستون متغیر Tours (تعداد صندلی ها) پس از نام جدول در براکت ها مشخص می شود. ارائه عملیات SELECT ، UPDATE.

چهار دستورالعمل در زبان کنترل داده (DCL) وجود دارد: COMMIT ، ROLLBACK ، GRANT ، REVOKE. همه این دستورالعمل ها مربوط به محافظت از پایگاه داده در برابر آسیب های تصادفی یا عمدی است. پایگاه های داده دقیقاً وقتی تغییرات در آنها ایجاد می شود آسیب پذیر هستند. برای محافظت از پایگاه داده ، SQL محدود به عملیات است. که می تواند آن را تغییر دهد ، به طوری که آنها فقط در معاملات اجرا می شوند. هنگامی که چندین کاربر سعی می کنند از یک جدول پایگاه داده به طور همزمان استفاده کنند ، یک وضعیت دسترسی همزمان ایجاد می شود. مشکلات همزمانی حتی در برنامه های نسبتاً ساده اگر برنامه روی سیستم چند کاربره نصب شده و اجرا شود که فاقد کنترل همزمانی است ، به وجود می آید. اگر به طور متوالی اجرا شوند منافاتی برای معامله وجود ندارد.

یکی از اصلی ترین ابزارها برای حفظ یکپارچگی پایگاه داده ، معامله است. یک تراکنش تمام عبارات SQL را که می تواند بر پایگاه داده تأثیر بگذارد ، محصور می کند. معامله SQL با یکی از دو عبارت به پایان می رسد: COMMIT یا ROLLBACK. اگر یک معامله با بیانیه ROLLBACK به پایان برسد ، تمام اظهارات آن لغو می شود و پایگاه داده به حالت اولیه خود باز می گردد. یک معامله طبیعی می تواند در یکی از دو حالت READ-WRITE (خواندن-نوشتن) یا READ-ONLY (فقط خواندنی) انجام شود. یک معامله را می توان به یکی از سطوح انزوا زیر تنظیم کرد: SERIAIZABLE (اجرای متوالی) ، READEATABLE READ (تکرار خواندن) ، READ UNCOMMITED (خواندن داده های تأیید نشده) ویژگی های پیش فرض READ-WRITE و SERIAIZABLE هستند. خصوصیات معاملات پیش فرض SQL به طور کلی برای اکثر کاربران مناسب است.

این برنامه در Visual Studio 2012 با استفاده از زبان برنامه نویسی C # ایجاد شده است. طراحی یک محصول نرم افزاری با توسعه رابط کاربری آغاز می شود.

پنجره اصلی برنامه باید توابع اصلی کار با برنامه را فراخوانی کند (شکل 1). از منو برای انجام این عملیات استفاده می شود. این فهرست شامل موارد زیر است: "جداول" ، "سeriesالات" ، "گزارش ها". هر یک از این نقاط حاوی نقاط فرعی است. هر عملکرد در پنجره خود اجرا می شود. عنصر MenuStrip در پنجره اصلی برنامه نصب شده است ، گزینه های منو تشکیل شده است. عنصر PictureBox در پنجره فرم قرار گرفته است. یک عکس در قسمت عنصر بارگیری می شود. نقاشی باید کل منطقه را پوشش دهد. ویژگی SizeMode مقیاس بندی تصویر را تنظیم می کند. برای این ویژگی ، StretchImage از لیست کشویی انتخاب می شود ، رسم مقیاس بندی می شود به طوری که تمام سطح جسم را اشغال می کند.

کنترل comboBox برای نمایش لیستی از کاربرانی که حق کار با پایگاه داده آژانس مسافرتی را دارند نصب شده است. عنصر comboBox به یک منبع داده متصل می شود. پنجره " از جانبomboBox وظایف"، که در آن کادر انتخاب" استفاده از موارد مرتبط با داده "انتخاب شده است ، اگر این کادر انتخاب انتخاب شود ، گزینه های اتصال داده باز می شوند. مورد comboBox به جدول Users محدود شده و نام خانوادگی در ردیف Display Member انتخاب شده است. برای ورود به سیستم ورود ، کنترل textbox1 نصب شده است تا یک textBox2 رمز ورود وارد کنید. برای عناصر textBox1 و textBox2 ، ویژگی UsesSystemPasworChar روی true تنظیم شده است ، که مشخص می کند آیا متن در جعبه متن باید با استفاده از نویسه های رمز عبور پیش فرض نمایش داده شود. دو دکمه فرمان "ورود" و "تغییر کاربر" نصب شده است.

هنگامی که یک مورد comboBox به جدول Users متصل است ، کنترل کننده رویداد Form1_Load در کد برنامه فرم ظاهر می شود.

void private Form1_Load (فرستنده شی ، EventArgs e)

this.usersTableAdapter1.Fill (this.tour AgencyDataSet10.Users)؛

هنگام شروع برنامه ، منو در دسترس نیست. برای ورود به سیستم ، باید داده های کاربر را وارد کنید و روی دکمه "ورود" کلیک کنید. هنگام بارگیری فرم ، نام خانوادگی کاربر موجود در جدول Users در کنترل comboBox1 بارگذاری می شود. در این کنترل کننده ، خطوطی اضافه می شود که منوها را غیرقابل دسترسی می کند ، دکمه "تغییر کاربر" و در عنصر comboBox1 هیچ موردی انتخاب نمی شود:

menuStrip1.Enabled \u003d false؛ comboBox1.SelectedIndex \u003d -1؛

دکمه 2. فعال \u003d نادرست ؛

شکل 1. نمای پنجره اصلی برنامه

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

رشته خصوصی parfam، parpasw، parlog؛

خط به فضای نام اضافه می شود:

با استفاده از System.Data.SqlClient ؛

// کنترل کننده رویداد برای کلیک کردن روی دکمه "ورود"

رشته sql \u003d ""؛

string connstr \u003d @ "Data Source \u003d B302CN-8 \\ TEST_SQL؛ کاتالوگ اولیه \u003d آژانس مسافرتی؛ امنیت یکپارچه \u003d درست"؛

SqlDataReader cmReader؛

parfam \u003d comboBox1.Text؛ parlog \u003d textBox1.Text؛

SqlConnection conn \u003d SqlConnection جدید (connstr)؛

sql \u003d "انتخاب نام خانوادگی ، ورود ، رمز عبور از کاربران" +

"WHERE (نام خانوادگی \u003dfam) و (رمز عبور [ایمیل محافظت شده])";

SqlCommand cmdkod \u003d SqlCommand جدید (sql ، اتصال)؛

cmdkod.Parameters.Add (جدید SqlParameter ("@ fam" ، SqlDbType.NChar ، 25))؛

cmdkod.Parameters ["@ fam"]. Value \u003d parfam؛

cmdkod.Parameters.Add (SqlParameter جدید ("@ pasw" ، SqlDbType.NChar ، 10))؛

cmdkod.Parameters ["@ pasw"]. مقدار \u003d parpasw؛

cmdkod.Parameters.Add (SqlParameter جدید ("@ log" ، SqlDbType.NChar ، 15))؛

cmdkod.Parameters ["@ log"]. Value \u003d parlog؛

if (! cmReader.Read ())

MessageBox.Show ("رمز عبور اشتباه!")؛

cmReader بستن ()؛ اتصال. بستن ()؛

menuStrip1.Enabled \u003d true؛ comboBox1.SelectedIndex \u003d -1؛

دکمه 1. فعال \u003d نادرست ؛ دکمه 2. فعال \u003d درست است

textBox1.Text \u003d ""؛ textBox1.Enabled \u003d false؛

textBox2.Text \u003d ""؛ textBox2.Enabled \u003d false؛

comboBox1.Enabled \u003d false؛

cmReader بستن ()؛

private void button2_Click (فرستنده شی ، EventArgs e)

menuStrip1.Enabled \u003d false؛ comboBox1.Enabled \u003d درست است؛

textBox1.Enabled \u003d true؛ textBox2.Enabled \u003d true؛

دکمه 1. فعال \u003d درست است دکمه 2. فعال \u003d نادرست ؛

شرح عملکرد کنترل کننده رویداد برای فشار دادن دکمه "Enter".

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

کنترل کننده نمونه جدیدی از شی SqlConnection را ایجاد می کند که اتصال به سرور SQL را فراهم می کند. شی SqlCommand شامل یک دستور دارای سه پارامتر برای جستجوی جدول Users برای کاربری با نام خانوادگی ، ورود و رمز عبور است. کنترل کننده button1_Click یک SqlConnection را باز می کند. سپس کنترل کننده دستور SQL ذخیره شده در شی cmdkod را اجرا می کند.

cmReader \u003d cmdkod.ExecuteReader ()؛

در نتیجه اجرای روش ExecuteReader ، یک شی از کلاس SqlDataReader ایجاد می شود ، که به شما امکان می دهد تمام خطوط اجرای دستور SQL را به طور متوالی بخوانید. برای انتخاب ، از روش SqlDataReader استفاده شده است. خواندن. اگر جدول "کاربران" شامل هیچ رکوردی با نام خانوادگی ، ورود و رمز عبور مشخص نباشد ، روش cmReader.Read () نادرست برمی گردد. این به این معنی است که شما یک نام کاربری یا رمز عبور اشتباه وارد کرده اید. در این حالت ، پیامی در مورد داده های نادرست وارد شده نمایش داده می شود ، اشیا cm cmReader و SqlConnection بسته می شوند. اگر داده های کاربر به درستی وارد شود ، منو و دکمه "تغییر کاربر" در دسترس قرار می گیرند. دکمه "ورود" از دسترس خارج می شود. عناصر textBox1 و textBox2 پاک شده و غیرقابل دسترسی می شوند. عنصر comboBox1 نیز غیرقابل دسترسی می شود (شکل 2)

شکل 2. نمای پنجره اصلی پس از ورود کاربر

جداول و نتایج جستجو در کنترل های DataGridView نمایش داده می شوند. هدف اصلی این عناصر پیوند دادن به جداول منابع داده خارجی ، در درجه اول به جداول پایگاه داده است. برای سهولت مشاهده و ورود مطالب جدید ، جداول "فصول" ، "تورها" و "تورها" ، "پرداخت" دو در یک پنجره نمایش داده می شوند. هر کنترل DataGridView با یک جدول مربوطه در پایگاه داده آژانس مسافرتی مرتبط است. در این پنجره ، جدول "جهانگردان" انتخاب شده است (شکل 3). وقتی اتصال را کامل کردید (روی پایان کلیک کنید) ، اجزای DataSet ، BindingSource و TableAdapter در فرم ظاهر می شوند. این م componentsلفه ها بصری نیستند ، بنابراین در پانل اضافی نمایش داده می شوند. DataSet یک شی specialized تخصصی است که شامل یک تصویر پایگاه داده است. برای پیاده سازی تعامل بین DataSet و منبع داده واقعی ، از یک شی از نوع TableAdapter استفاده می شود. نام این شی - آداپتور ، مبدل - ماهیت آن را نشان می دهد. TableAdapter شامل روشهای Fill و Update است که انتقال داده های جلو و عقب را بین DataSet و جدول ذخیره شده در پایگاه داده SQL سرور انجام می دهد. روش Fiil DataSet را با داده های SQL Server پر می کند و Update پایگاه داده SQL Server را با داده های DataSet محلی به روز می کند. م componentلفه BindingSource اتصال کنترل ها را از یک فرم به داده ها آسان می کند. ویژگی اصلی م theلفه BindingSource ویژگی Data Source است که به منبع داده اشاره می کند.

هنگامی که جداول به منابع داده متصل می شوند ، کنترل کننده رویداد Form2_Load در کد برنامه فرم ظاهر می شود.

void private Form2_Load (فرستنده شی ، EventArgs e)

this.touristsTableAdapter.Fill (این آژانس مسافرتی DataSet9.Tourists)؛

هنگام بارگیری فرم ، داده های موجود در جدول Tourists در کنترل DataGridView در پنجره فرم Form2 نمایش داده می شود. می توانید در جدول تغییراتی ایجاد کرده و رکوردهای جدید اضافه کنید. پس از ایجاد تغییرات ، بر روی دکمه "ذخیره گردشگران" کلیک کنید. مسئول رویداد برای کلیک روی دکمه "ذخیره گردشگران":

private void button1_ کلیک کنید (فرستنده شی ، EventArgs e)

seasonsTableAdapter.Update (آژانس مسافرتی DataSet9) ؛

MessageBox.Show ("داده ذخیره شد")؛

شکل 3. نمای پنجره با جدول "جهانگردان"

هر درخواست در یک پنجره جداگانه نمایش داده می شود. در پنجره Form1 ، مورد جدیدی با نام درخواست به منوی Queries اضافه می شود. اگر پرس و جو پارامتر نداشته باشد ، یک کنترل DataGridView بر روی پنجره فرم نصب می شود تا نتایج اجرای درخواست را نمایش دهد و به روش مناسب یا عملکرد پایگاه داده متصل شود.

این مقاله برخی از روشهای توسعه برنامه هایی را که با پایگاه داده کار می کنند ، روشی برای سازماندهی دسترسی به کار با یک گروه محدود از افراد ، روش های ادغام برنامه های Visual C # با Microsoft SQL Server 2012 DBMS را توصیف می کند. هنگامی که از زبان برنامه نویسی Visual C # با SQL استفاده می کنید ، می توانید قدرتمند ایجاد کنید برنامه های کاربردی با طیف گسترده ای از قابلیت ها. قدرت اصلی SQL در بازیابی اطلاعات است. مهم نیست که چند ردیف در جدول وجود دارد ، می توانید آنها را با یک عبارت SELECT بازیابی کنید. در عین حال ، اصلی ترین عیب زبان SQL رابط کاربری توسعه نیافته آن است. با استفاده از زبان های رویه ای ، می توانید رابط های کاربر پسند برای ورود و مشاهده داده ها ایجاد کنید. متداول ترین روش برای ترکیب SQL با زبان های رویه ، تزریق SQL نامیده می شود. دستور SQL در محل مورد نظر در برنامه رویه درج می شود. اطلاعات باید بین یک برنامه نوشته شده به زبان رویه ای و کد SQL باشد. متغیرهای اساسی برای این مورد استفاده می شود. برای اینکه SQL این متغیرها را تشخیص دهد ، باید آنها را اعلام کرد. متغیرها قبل از توصیف کد در ناحیه توصیف کلاس فرم اعلام می شوند. در کد ، شی object جدید ایجاد شده SqlConnection اتصال به سرور SQL را فراهم می کند. شی SqlCommand اجرای دستور جاسازی شده SQL را فراهم می کند.

کتابشناسی - فهرست کتب:

  1. آلن تیلور SQL برای Dummies ، چاپ هشتم: در هر. از انگلیسی - م.: LLC "I.D. ویلیامز ”، 2014. - 416 ص.
  2. Gaynanova R.Sh. توسعه برنامه های کاربردی برای کار با پایگاه داده MS SQL Server 2012 // علوم بنیادی و کاربردی امروز: مجموعه مقالات کنفرانس عملی بین المللی XI (10-11 آوریل 2017 نوت چارلستون ، ایالات متحده آمریکا) ، جلد 3 - ص. 34-41.
  3. Frolov A.V. ، Frolov G.V. طراحی بصری برنامه های C #. - م.: KUDRITS-OBRAZ ، 2003 ، - 512s.

بیایید یک برنامه پایگاه داده ساده ایجاد کنیم که اطلاعات مربوط به جدول "Tourists" و یک رکورد جدول "Tourist Information" را از پایگاه داده Microsoft Access مرتبط با رکورد فعلی جدول Tourists نشان دهد.

برای این کار ، بیایید یک برنامه خالی از ویندوز ایجاد کنیم. ظاهر محیط

توسعه در شکل 39 نشان داده شده است.

شکل: 39. برنامه خالی

در شکل 39 ، گروه اجزای "داده" برجسته شده است که شامل اجزای دسترسی و دستکاری داده ها است.

اتصال داده های پایگاه داده به فرم توسط م componentلفه Binding Source انجام می شود. بیایید آن را به فرم منتقل کنیم. پس از قرار دادن آن بر روی فرم ، محیط توسعه به شکل زیر در می آید (شکل 40).

شکل: 40. منبع اتصال اجزاent در فرم

این م visualلفه بصری نیست ، بنابراین در یک صفحه دیگر نمایش داده می شود. خاصیت اصلی م componentلفه ، ویژگی DataSource است که به منبع داده اشاره می کند. به طور پیش فرض ، ویژگی خالی است ، بنابراین باید مقدار آن را شکل دهید. با انتخاب این ویژگی ، پنجره زیر در پنجره Properties ظاهر می شود (شکل 41).

شکل: 41. لیست منابع داده

لیست در حال حاضر خالی است ، بنابراین شما باید یک منبع داده جدید با انتخاب دستور Add Project Data Source ایجاد کنید تا یک منبع داده جدید ایجاد کنید و به آن متصل شوید. کادر گفتگوی زیر ظاهر می شود (شکل 42).

شکل: 42. لیست منابع داده

این گفتگو منابع زیر را برای منابع زیر فراهم می کند:

پایگاه داده - بانک اطلاعاتی ؛

سرویس - سرویس نوعی سرویس است که داده را فراهم می کند. اغلب این یک سرویس وب است.

Object - یک شی برای انتخاب یک شی که داده ها و اشیا را برای کار تولید می کند.

در مورد ما ، شما باید مورد "پایگاه داده" را انتخاب کنید. پنجره انتخاب اتصال داده ظاهر می شود (شکل 43).

شکل: 43. انتخاب اتصال داده

هدف از این گفتگو ایجاد یک رشته اتصال است که پارامترهای اتصال موتور ADO را توصیف می کند ، مانند نوع پایگاه داده ، مکان آن ، نام کاربری ، ابزارهای امنیتی و غیره.

لیست کشویی گفتگو شامل تمام اتصالات ایجاد شده قبلی است. اگر اتصال مورد نیاز در لیست نیست ، باید از دکمه "اتصال جدید" استفاده کنید. فشار دادن دکمه منجر به ظاهر گفتگوی زیر می شود (شکل 44).

در این گفتگو ، نوع منبع داده (در این مورد Microsoft Access) ، نام پایگاه داده (در این مورد ، نام و محل پرونده پایگاه داده) ، نام کاربری و رمز عبور مورد استفاده برای اتصال به پایگاه داده را انتخاب می کنید. دکمه "Advanced" به شما امکان می دهد تعداد زیادی پارامتر مربوط به جزئیات مختلف مکانیزم ADO را تنظیم کنید. با استفاده از دکمه "اتصال اتصال" مطمئن می شوید که پارامترهای وارد شده صحیح بوده و اتصال کار می کند.

شکل: 44. ایجاد اتصال جدید

آخرین مرحله گفتگو ، انتخاب آن جداول یا سایر اشیا database پایگاه داده است که در این منبع داده مورد نیاز است. پنجره انتخاب در شکل 45 نشان داده شده است.

شکل: 45. انتخاب جداول مورد نیاز

در این پنجره ، جداول "گردشگران" و "اطلاعات گردشگران" انتخاب می شوند. از آنجا که هیچ چیز دیگری به غیر از جداول در پایگاه داده ایجاد نشده است ، فقط جداول در شکل 45 نمایش داده می شوند. این کار ایجاد منبع داده را کامل می کند. وقتی روی Finish کلیک می کنید ، یک DataSet در کنار BindingSource روی فرم ظاهر می شود.

اکنون داده های متصل شده در بالا باید روی فرم نمایش داده شوند. ساده ترین راه برای نمایش داده ها استفاده از م componentلفه DataGridView از گروه م componentلفه های داده است. این ملفه بصری است و روی فرم به این شکل است (شکل 46).

شکل: 46. \u200b\u200bکامپوننت DataGridView

بلافاصله پنجره تنظیمات م componentلفه ظاهر می شود که گزینه های آن را برای ویرایش داده تعیین می کند: "فعال کردن افزودن" ، "فعال کردن ویرایش" ، "فعال کردن حذف" ؛ توانایی تغییر توالی ستونها: "فعال کردن مرتب سازی مجدد ستون" ؛ و همچنین توانایی لنگر انداختن در ظرف اصلی.

برای اینکه م componentلفه داده ها را نمایش دهد ، لازم است یک منبع داده را در لیست کشویی انتخاب کنید. انتخاب لیست کشویی منجر به ظاهر گفتگوی زیر می شود (شکل 47).

شکل: 47. انتخاب منبع داده برای DataGridView

در این حالت ، ما جدول "گردشگران" را به عنوان منبع داده انتخاب کرده ایم. این انتخاب صفحه نمایش را به شرح زیر تغییر می دهد (شکل 48).

شکل: 48. Component DataGridView ساختار جدول را نشان می دهد

در شکل می بینید که یک م componentلفه دیگر BindingSource و یک م Tableلفه TableAdapter وجود دارد که با جدول Tourists کار می کند. لطفاً توجه داشته باشید که در زمان طراحی یا هنگام توسعه ، داده های جدول نمایش داده نمی شوند.

اکنون شما باید داده ها را از جدول پیوند گردشگر پیوند داده شده نمایش دهید. برای این کار ، یکی دیگر از م componentلفه های DataGridView را روی فرم قرار دهید و موارد زیر را به عنوان منبع داده انتخاب کنید (شکل 49).

شکل: 49. انتخاب منبع داده برای DataGridView دوم

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

شکل: 50. برنامه پایگاه داده در محل کار

پیمایش از طریق داده ها با استفاده از کلیدهای جهت دار ناخوشایند است. برای ساده سازی پیمایش از طریق داده ها ، یک م navigationلفه BindingNavigator وجود دارد. بیایید آن را روی فرم قرار دهیم (شکل 51).

شکل: 51. م componentلفه BindingNavigator روی فرم

این م componentلفه به شما امکان می دهد بین سوابق جدول حرکت کنید ، ردیف های جدول را اضافه و حذف کنید. عملکرد و شکل ظاهری م componentلفه قابل تنظیم است زیرا نوار منوی ToolStripContainer است.

خاصیتی که جدول مورد نظر جهت هدایت را مشخص می کند ، خاصیت BindingSource است. مقدار این ویژگی را روی TouristBindingSource تنظیم کنید. در عمل ، م componentلفه به این شکل است (شکل 52).

شکل: 52. م componentلفه BindingNavigator در محل کار

ویرایش داده ها در سلول های م componentلفه DataGridView با تنظیمات مناسب امکان پذیر است ، اما ناخوشایند و منطقی نیست. به طور خاص ، بررسی مقادیر وارد شده برای وجود خطا دشوار است. بنابراین ، برای جدول "جهانگردان" ، ما یک فرم صفحه ایجاد خواهیم کرد که امکان نمایش داده ها در اجزای TextBox و ویرایش آنها را فراهم می کند. برای انجام این کار ، یک ظرف از نوع Panel بر روی فرم قرار داده و روی آن سه جز Text TextBox به شرح زیر قرار دهید (شکل 53).

شکل: 53. صفحه نمایش برای ویرایش سوابق جدول "جهانگردان"

اکنون لازم است که اجزای TextBox را به قسمتهای مربوط به جدول "گردشگران" متصل کنید. برای این منظور از خاصیت گروه DataBindings - Advanced ، که در شکل 54 نشان داده شده است ، استفاده می کنیم.

شکل: 54. ویژگی "DataBindings - Advanced"

انتخاب این ویژگی منجر به ظاهر کادر گفتگوی نشان داده شده در شکل 55 می شود. این گفتگو به شما امکان می دهد تا نه تنها داده ها را متصل کنید ، بلکه همچنین رویدادی را تنظیم می کنید که داده ها در آن به روز می شوند و همچنین هنگام نمایش داده ها ، آنها را قالب بندی می کند.

برای جز component برتر TextBox در لیست کشویی Binding ، منبع داده "touristBmdmgSource" و قسمت منبع - "Lastname" را انتخاب کنید. برای م componentsلفه های TextBox وسط و پایین ، به ترتیب منبع داده و فیلدهای "Name" و "Patronymic" را انتخاب کنید.

برنامه توسعه یافته در عمل به شرح زیر است (شکل 56).

شکل: 55. جعبه گفتگو برای ویژگی "DataBindings - Advanced"

شکل: 56. اتصال داده ها به اجزای بصری

با این حال ، هنگام ایجاد تغییرات ، تمام داده های جدید فقط در فرم باقی می مانند. آنها در پایگاه داده ذخیره نمی شوند و البته با فراخوانی مجدد برنامه ، دیگر وجود نخواهند داشت. این به این دلیل است که داده ها در DataSet بارگذاری شده اند ، که یک کپی از جدول در حافظه است. تمام اقدامات با این نسخه انجام می شود. برای اینکه تغییرات در پایگاه داده منعکس شود ، باید روش Update کلاس TableAdapter را اجرا کنید. بنابراین ، در برنامه توسعه یافته لازم است که دکمه Update را قرار داده و کد برنامه زیر را برای کنترل کننده رویداد Click بنویسید:

touristTableAdapteгUpdate (bDTur_firmDataSet)؛ info_about_touristsTableAdapter.Update (bDTur_firmDataSet)؛

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