• پرس و جوهای sql پروفایل استودیو ویژوال. ساخت پویا پرس و جوها پیاده سازی نقشه پایگاه داده

    در پنجره Server Explorer، جایی که جداول پایگاه داده در مایکروسافت SQL Server به شکل یک درخت ارائه می شوند (شکل 4.1. را ببینید)، می توانید با کلیک بر روی دکمه Show Table Data، پنجره ای برای هر جدول باز کنید. در این پنجره است که می توانید داده های جدول را ویرایش کنید. این پنجره ویرایش تقریباً همانطور که در شکل نشان داده شده است به نظر می رسد. 4.2. تقریباً چون حجم کامل به دلیل تعداد زیاد ستون ها در شکل درج نشده بود.

        1. پیاده سازی نقشه پایگاه داده

    نگاشت پایگاه داده (جزء DataSet) به منظور حذف تماس های غیر ضروری به پایگاه داده و سرور ضروری است. این یک ویژگی بسیار مهم است، زیرا اگر کاربران زیادی با پایگاه داده کار کنند، بار روی سرور می تواند بسیار زیاد باشد - تعداد درخواست ها چندین برابر بیشتر است که اجرای درخواست ها را کند می کند.

    بنابراین، با توجه به DataSet، کامپیوتر مشتری دارای نمایشگر پایگاه داده ای است که با آن کار می کند. پس از اتمام کار، پایگاه داده های سرویس گیرنده و سرور هماهنگ می شوند (یا بهتر است بگوییم، تغییرات ایجاد شده در پایگاه داده مشتری در پایگاه داده سرور ایجاد می شود)

    نگاشت پایگاه داده ما در MS Visual Studio 2005 به این صورت است:

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

    اسکرین شات نشان می دهد که هر جدول دارای TableAdapters نیز می باشد. اینها نوعی پل بین DataSet و منبع داده هستند. متدهایی مانند Fill و GetData() وجود دارد.

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

      متد GetData().

    طراحی شده برای گرفتن داده ها از جدول نمایش.

      1. پیاده سازی نرم افزار

    ویژگی اصلی در پیاده سازی نرم افزار این است که تمامی کلاس های مسئول ویرایش جداول پایگاه داده از یک کلاس پایه به ارث برده شده اند که پیاده سازی آن را آسان می کند. روش های این کلاس پایه در بالا توضیح داده شده است. متدهای مجازی کلاس پایه باید در کلاس descendant override شوند. همه این روش‌ها به شما امکان می‌دهند پارامترهایی را در فرزند تغییر دهید: نام هدر فرم، پر کردن و ذخیره جدول پایگاه داده مورد نیاز (یک کلاس فرزند تنها با یک جدول کار می‌کند، به معنای ویرایش داده‌ها؛ اما هنگام نمایش داده‌ها داده ها به کاربر، امکان استفاده از چندین جدول پایگاه داده برای نمایش داده ها به صورت کاربر پسند وجود دارد).

        1. رابط برنامه

    پنجره اصلی یک برنامه MDI است که منوی زیر را دارد:

    هر یک از جداول برای ویرایش پایگاه داده توسط آیتم منوی مربوطه "Tables" فراخوانی می شود.

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

    به عنوان یکی از ویژگی های اضافی نرم افزار، یک آیتم منو "کنسول" وجود دارد که به شما امکان می دهد پرس و جوهای SQL را در پایگاه داده وارد شده توسط کاربر اجرا کنید و نتیجه را در یک جدول (جزء DataTable) نمایش دهید. برای انجام این کار، البته، شما باید نام جداول و فیلدها را بدانید، و عمدتاً به منظور راحتی در پیاده سازی نرم افزار ایجاد شده است، اما سایر کاربران "شروع" نیز می توانند از آن استفاده کنند.

    حاشیه نویسی: پس از اتمام این سخنرانی، شما قادر خواهید بود: ایجاد پرس و جو با استفاده از SQL Server Management Studio Query Builder اطلاعات پایگاه داده را از جداول سیستم پایگاه داده به صورت پویا ایجاد پرس و جوهای ساده بر اساس فرمت ورودی کاربر ورودی کاربر ایجاد کنید و پرس و جوهای پویا پیچیده را فیلتر کرده و داده ها را برای استفاده مجددا قالب بندی کنید. در فیلتر، از پایگاه داده در برابر حملات "SQL-injection" محافظت کنید، از رویه sp_executeSql برای ارسال پرس و جو استفاده کنید.

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

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

    رابط کاربری برای ساخت پرس و جو

    SQL Server Management Studio شامل یک رابط پیچیده برای ساخت پرس و جو می باشد. بیایید این رابط را بررسی کنیم تا بتوانید ایده ای از نحوه ایجاد پرس و جو به صورت پویا داشته باشید. برنامه شما به همه چیز نیاز نخواهد داشت کنترل هاارائه شده توسط SQL Server Management Studio. در واقع، شما باید به دقت فکر کنید که چگونه می توانید انتخاب های کاربران را محدود کنید.

    ایجاد یک پرس و جو با استفاده از SQL Server Management Studio Query Builder

    بازیابی اطلاعات جداول پایگاه داده

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

    با استفاده از INFORMATION_SCHEMA

    طرح INFORMATION_SCHEMA یک طرح ویژه است که در هر پایگاه داده یافت می شود. این شامل تعاریف برخی از اشیاء پایگاه داده است.

    INFORMATION_SCHEMA مطابق با استاندارد ANSI است که برای بازیابی اطلاعات از هر موتور پایگاه داده منطبق با ANSI طراحی شده است. در SQL Server، INFORMATION_SCHEMA شامل مجموعه ای از نماها است که جداول پایگاه داده sys* را که حاوی اطلاعاتی درباره ساختار پایگاه داده است، پرس و جو می کند. این جداول را می توان مستقیماً پرس و جو کرد، درست مانند هر جدول پایگاه داده دیگر. با این حال، در بیشتر موارد، برای بازیابی اطلاعات از جداول *sys، بهتر است از نماهای طرحواره INFORMATION_SCHEMA استفاده کنید.

    توجه داشته باشید. طرحواره INFORMATION_SCHEMA گاهی اوقات جداول غیر مورد نیاز را درخواست می کند که برای عملکرد مضر است. در مثال بعدی این فصل، این اهمیت خاصی ندارد زیرا برنامه قبلاً منتظر ورودی کاربر بود. با این حال، اگر سرعت یک ملاحظات مهم برای برنامه شما باشد، این باید در نظر گرفته شود.

    در اینجا کد اصلی T-SQL است که برای دریافت اطلاعات در مورد ستون های موجود در جدول استفاده می شود:

    توجه داشته باشید که برای دریافت طرح جدول باید فیلد TABLE_SCHEMA را انتخاب کنید. این ممکن است برای ایجاد پرس و جوهای مشابه در آینده ارزشمند باشد. برای آزمایش روش های توضیح داده شده در این فصل، یک پروژه جدید در ویژوال استودیو ایجاد کنید.

    یک پروژه ویژوال استودیو جدید ایجاد کنید
    1. از منوی Start دستورات All Programs، Microsoft Visual Studio 2005، Microsoft Visual Studio 2005 را انتخاب کنید.
    2. از منوی ویژوال استودیو، دستورات File, New, Project (File, Create, Project) را انتخاب کنید.
    3. در پانل Project Types، گره ویژوال بیسیک (راه حل های ویژوال بیسیک) را گسترش دهید و الگوی برنامه را در پانل Templates انتخاب کنید. نام پروژه را Chapter7 بگذارید و روی OK کلیک کنید.
    4. برنامه این مثال را می توان در فایل های مثال در پوشه \Chapter7\DynQuery پیدا کرد. می‌توانید کد رویه‌های زیر را از فایل Form1.vb برش داده و جای‌گذاری کنید.
    دریافت لیست جداول و نماها

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

    TABLE_SCHEMA، TABLE_NAME، TABLE_TYPE از INFORMATION_SCHEMA.TABLES را انتخاب کنید

    در یک برنامه کاربردی می توان از این کوئری به صورت زیر استفاده کرد.

    دریافت لیست جداول

    کد ویژوال بیسیک فوق یک شی SqlCommand به نام com را با رشته SQL که باید اجرا شود مقداردهی اولیه می کند و سپس شی SqlCommand را اجرا می کند. این ساده ترین راه برای اجرای یک دستور T-SQL از داخل یک برنامه است.

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

    هنگامی که کاربر جدولی را انتخاب کرد، فهرست ستون‌های آن جدول را می‌توان با استفاده از روش مشابه، با استفاده از ورودی کاربر به عنوان نام جدول در پرس‌وجو، بازیابی کرد. برای انجام این کار، یک پراکسی در رشته query وارد کنید و سپس آن پراکسی را با یک فراخوانی به String.Format جایگزین کنید. در کد زیر، مکان نگهدار در رشته کوئری (0) است.

    دریافت لیستی از ستون ها
    1. رویه RetrieveColumns زیر را به کد زیر رویه RetrieveTables اضافه کنید:

      Sub RetrieveColumns(ByVal TableName As String) MyConnection به عنوان SqlClient.SqlConnection جدید(_ "Data Source=.\SQLExpress;" & _ "Initial Catalog=AdventureWorks;Trusted_Connection=Yes;") کم نور String "TringHESQLESQLE" , COLUMN_NAME, " + _ "ORDINAL_POSITION, DATA_TYPE " + _ "FROM INFORMATION_SCHEMA.COLUMNS " + _ "WHERE (TABLE_NAME = "(0)")" تیره جدول ستون‌ها به‌عنوان جدول داده جدید Dim da As New SqlClient.RingFormat (sqlStr، TableName)، MyConnection) da.Fill(tableColumns) برای i به عنوان عدد صحیح = 0 به tableColumns.Rows.Count - 1 با tableColumns.Rows.Item(i) Console.WriteLine("(0) (1) (2 )"، _ .Item(1)، .Item(2)، .Item(3)) End with Next End Sub Sub

    2. در روش Form1_Load، پس از روش RetrieveTables، فراخوانی زیر را به رویه RetrieveColumns اضافه کنید:

    نمونه ای از ایجاد پایگاه داده محلی Microsoft SQL Server درMS Visual Studio

    این مبحث حل مشکل ایجاد پایگاه داده از نوع SQL Server با استفاده از MS Visual Studio را نشان می دهد. سوالات زیر در حال بررسی است:

    • کار با پنجره Server Explorer در MS Visual Studio.
    • ایجاد یک پایگاه داده محلی از نوع SQL Server Database.
    • ایجاد جداول در پایگاه داده؛
    • ویرایش ساختارهای جدول؛
    • پیوند دادن جداول پایگاه داده به یکدیگر؛
    • وارد کردن داده ها به جداول با استفاده از MS Visual Studio.

    وظیفه

    با استفاده از ابزارهای MS Visual Studio یک پایگاه داده از نوع MS SQL Server با نام Education ایجاد کنید. پایگاه داده شامل دو جدول Student و Session است. جداول توسط فیلدهایی به هم مرتبط هستند.

    ساختار جدول اول "دانش آموز".

    ساختار جدول دوم "جلسه".

    کارایی

    1. MS Visual Studio را دانلود کنید.

    2. فعال کنیدپنجرهکاوشگر سرور

    برای کار با پایگاه های داده، مایکروسافت یک سرور پایگاه داده سبک وزن Microsoft SQL Server را ارائه می دهد. نسخه های مختلفی از Microsoft SQL Server وجود دارد، به عنوان مثال: Microsoft SQL Server 2005، Microsoft SQL Server 2008، Microsoft SQL Server 2014 و موارد دیگر.

    می توانید این نسخه ها را از وب سایت مایکروسافت www.msdn.com دانلود کنید.

    این سرور برای کار با دیتابیس عالی است. رایگان است و دارای یک رابط گرافیکی برای ایجاد و مدیریت پایگاه داده با استفاده از ابزار مدیریت سرور SQL.

    اول از همه، قبل از ایجاد پایگاه داده، باید ابزار Server Explorer را فعال کنید. برای انجام این کار، در MS Visual Studio باید تماس بگیرید (شکل 1)

    مشاهده -> اکسپلورر سرور

    برنج. 1. با سرور اکسپلورر تماس بگیرید

    پس از تماس، پنجره Server Explorer ظاهری تقریبی خواهد داشت، همانطور که در شکل 2 نشان داده شده است.

    برنج. 2. پنجره اکسپلورر سرور

    3. ایجاد پایگاه داده "آموزش".

    برای ایجاد یک پایگاه داده جدید بر اساس Microsoft SQL Server Data Provider، بر روی گره Data Connections کلیک کرده و سپس « را انتخاب کنید. ایجاد پایگاه داده SQL Server جدید ...” (شکل 3).

    برنج. 3. فراخوانی دستور ایجاد پایگاه داده SQL Server

    در نتیجه پنجره " ایجاد پایگاه داده SQL Server جدید» (شکل 4).

    پنجره (در قسمت "Server Name") نام سرور محلی نصب شده بر روی رایانه شما را نشان می دهد. در مورد ما، این نام "SQLEXPRESS" است.

    فیلد "New database name:" نام پایگاه داده ای را که قرار است ایجاد شود مشخص می کند. در مورد ما، این نام آموزش است.

    گزینه Use Windows Autentification باید بدون تغییر باقی بماند و روی دکمه OK کلیک کنید.

    برنج. 4. ایجاد یک پایگاه داده جدید SQL Server 2008 Express با استفاده از MS Visual Studio 2010

    پس از اقدامات انجام شده، پنجره Server Explorer به شکلی که در شکل 5 نشان داده شده است. همانطور که در شکل 5 مشاهده می شود، پایگاه داده آموزش با نام

    sasha-pc\sqlexpress.Education.dbo

    برنج. 5. پنجره Server Explorer پس از افزودن پایگاه داده Education

    4. اشیاء پایگاه داده آموزش.

    اگر پایگاه داده آموزش (علامت "+") را گسترش دهید، می توانید لیستی از اشیاء اصلی زیر را ببینید:

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

    5. ایجاد جدول دانش آموز.

    در حال حاضر، پایگاه داده آموزش کاملا خالی است و هیچ شیئی (جدول، رویه های ذخیره شده، نماها و غیره) ندارد.

    برای ایجاد یک جدول، باید منوی زمینه را فراخوانی کنید (راست کلیک کنید) و دستور "افزودن جدول جدید" را انتخاب کنید (شکل 6).

    برنج. 6. دستور اضافه کردن جدول جدید

    گزینه دیگری برای اضافه کردن جدول پایگاه داده با استفاده از دستورات منوی Data وجود دارد:

    داده -> افزودن جدید -> جدول

    برنج. 7. گزینه جایگزین برای افزودن جدول جدید

    در نتیجه پنجره ای برای افزودن جدول باز می شود که شامل سه ستون است (شکل 8). در ستون اول "نام ستون" باید نام فیلد مربوطه از جدول پایگاه داده را وارد کنید. در ستون دوم «نوع داده» باید نوع داده این فیلد را وارد کنید. ستون سوم "Allow Nulls" گزینه احتمال عدم وجود داده در فیلد را نشان می دهد.

    برنج. 8. پنجره ایجاد جدول جدید

    با استفاده از ویرایشگر جدول، باید جدول Student را همانطور که در شکل 9 نشان داده شده است ایجاد کنید. نام جدول زمانی که بسته می شود باید مشخص شود.

    در ویرایشگر جدول، می‌توانید ویژگی‌های فیلد را در پنجره ویژگی‌های ستون تنظیم کنید. برای تنظیم طول یک رشته (nvchar) به کاراکتر، پنجره ویژگی های ستون دارای ویژگی Length است. مقدار پیش فرض این ویژگی 10 است.

    برنج. 9. میز دانش آموزی

    مرحله بعدی تنظیم فیلد کلید است. این کار با فراخوانی دستور "Set Primary Key" از منوی زمینه فیلد Num_book انجام می شود. پیوندهای بین جداول با استفاده از فیلد کلید ایجاد می شود. در مورد ما، فیلد کلید شماره کتاب رکورد است.

    برنج. 10. تنظیم فیلد کلید

    پس از تنظیم کلید اصلی، پنجره جدول مانند شکل 11 خواهد بود.

    برنج. 11. شاگرد جدول پس از تشکیل نهایی

    حالا می توانید جدول را ببندید. در پنجره ذخیره جدول، باید نام آن را مشخص کنید - Student (شکل 12).

    برنج. 12. وارد کردن نام جدول Student

    6. جدول Session را ایجاد کنید.

    طبق الگوی ایجاد جدول Student، جدول Session ایجاد می شود.

    شکل 13 نمای جدول Session را پس از تشکیل نهایی نشان می دهد. کلید اصلی در قسمت Num_book تنظیم شده است. نام جدول توسط Session داده شده است.

    برنج. 13. میز جلسه

    پس از انجام اقدامات انجام شده، دو جدول Student و Session در پنجره Server Explorer نمایش داده می شود.

    بنابراین، هر تعداد جدول را می توان به پایگاه داده اضافه کرد.

    7. ویرایش ساختار جداول.

    مواقعی وجود دارد که باید ساختار جدول پایگاه داده را تغییر دهید.

    برای ایجاد تغییرات در جداول پایگاه داده در MS Visual Studio، ابتدا باید تیک گزینه “Prevent Saving changes” را بردارید. که نیاز به ایجاد مجدد جدول دارندهمانطور که در شکل 14 نشان داده شده است. در غیر این صورت، MS Visual Studio تغییرات جدول ایجاد شده قبلی را مسدود خواهد کرد. پنجره Options نشان داده شده در شکل 14 از منوی Tools به ترتیب زیر فراخوانی می شود:

    ابزار -> گزینه ها -> ابزارهای پایگاه داده -> طراحان جدول و پایگاه داده

    برنج. 14. گزینه " جلوگیری از ذخیره تغییراتی که نیاز به ایجاد مجدد جدول دارند

    پس از سفارشی سازی، می توانید ساختار جدول را تغییر دهید. برای این کار از دستور Open Table Definition (شکل 15) از منوی زمینه استفاده می شود که برای جدول انتخاب شده (کلیک راست ماوس) فراخوانی می شود.

    برنج. 15. فراخوانی دستور "Open Table Definition".

    این دستور نیز در منوی Data قرار دارد:

    داده -> تعریف جدول را باز کنید

    ابتدا باید جدول انتخاب شود.

    8. ایجاد پیوند بین جداول.

    مطابق با شرایط مشکل، جداول توسط فیلد Num_book به هم متصل می شوند.

    برای ایجاد رابطه بین جداول، ابتدا نیاز دارید (شکل 16):

    • شی پایگاه داده Diagram را انتخاب کنید.
    • دستور Add New Diagram را از منوی زمینه (یا از منوی Data) انتخاب کنید.

    برنج. 16. فراخوانی دستور برای افزودن یک نمودار جدید

    در نتیجه، پنجره ای برای افزودن نمودار جدید Add Table باز می شود (شکل 17). در این پنجره باید دو جدول Session و Student را پشت سر هم انتخاب کرده و دکمه Add را بزنید.

    برنج. 17. پنجره برای افزودن جداول به نمودار

    برنج. 18. جداول Student and Session پس از اضافه کردن آنها به نمودار

    برای شروع ایجاد رابطه بین جداول، باید روی فیلد Num_book از جدول Student کلیک کنید و سپس (بدون رها کردن دکمه ماوس) آن را به قسمت Num_book جدول Session بکشید.

    در نتیجه، دو پنجره به ترتیب باز می شوند: جداول و ستون ها (شکل 19) و روابط کلید خارجی (شکل 20)، که در آنها باید همه چیز را همانطور که هست رها کنید و انتخاب خود را با OK تأیید کنید.

    در پنجره Tables and Columns نام رابطه (FK_Session_Student ) و نام جداول والد (Student) و فرزند تنظیم می شود.

    برنج. 19. پنجره جداول و ستون ها

    برنج. 20. پنجره ویژگی های رابطه

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

    برنج. 21. رابطه بین جداول Student و Session

    ذخیره نمودار دقیقاً به همان روش ذخیره جدول انجام می شود. نام نمودار باید به صلاحدید شما انتخاب شود (مثلاً نمودار 1).

    پس از تنظیم نام نمودار، پنجره Save باز می شود که در آن باید انتخاب خود را تأیید کنید (شکل 22).

    برنج. 22. تایید ذخیره تغییرات در جداول

    9. وارد کردن داده ها در جداول.

    سیستم ویژوال استودیو مایکروسافت به شما امکان می دهد مستقیماً داده ها را در جداول پایگاه داده وارد کنید.

    در مورد ما، هنگام برقراری یک اتصال (شکل 19)، جدول اولیه (جدول کلید اولیه) Student انتخاب شد. بنابراین، ابتدا باید داده ها را در سلول های این جدول خاص وارد کنید. اگر سعی کنید ابتدا داده ها را در جدول Session وارد کنید، سیستم با خروجی پیام مربوطه چنین ورودی را مسدود می کند.

    برای فراخوانی حالت ورود داده ها در جدول Student، باید دستور Show Table Data را از منوی زمینه (راست کلیک کنید) یا از منوی Data (شکل 23) فراخوانی کنید.

    برنج. 23. نمایش دستور داده های جدول

    پنجره ای باز می شود که در آن باید داده های ورودی را وارد کنید (شکل 24).

    برنج. 24. وارد کردن داده ها در جدول Student

    پس از وارد کردن داده ها در جدول Student، باید داده ها را در جدول Session وارد کنید.

    هنگام وارد کردن داده ها در قسمت Num_book جدول Session، باید دقیقا همان مقادیری را وارد کنید که در قسمت Num_book جدول Student وارد شده است (چون این فیلدها به هم مرتبط هستند).

    به عنوان مثال، اگر مقادیر وارد شده در قسمت Num_book جدول Student باشد “101”, “102”, “103” (شکل 24 را ببینید)، سپس این مقادیر باید در قسمت Num_book جدول Session وارد شوند. اگر بخواهید مقدار دیگری وارد کنید، سیستم تقریباً پنجره زیر را نمایش می دهد (شکل 25).

    برنج. 25. پیام خطای ورود اطلاعات جداول مربوط به Student and Session

    جدول Session با داده های وارد شده در شکل 26 نشان داده شده است.

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

    LINQ چیست؟ زبان یکپارچه پرس و جو (LINQ) یک زبان پرس و جو یکپارچه، یا بهتر است بگوییم یک پروژه بحث برانگیز مایکروسافت برای افزودن نحو زبان پرس و جو شبیه به SQL است. با تعریف خاص، این ابزار پرس و جو از جداول و لیست داده ها و نه لزوماً پایگاه داده را نسبتاً آسان می کند.

    نمونه های مایکروسافت یک جزئیات کوچک اما مهم را از دست می دهند. برای کار با یک مجموعه داده، باید از ساختار DataContext استفاده کنیم که تعریف آن را می توان با استفاده از SPmetal.exe برای لیست یا کتابخانه موجود در سرور Sharepoint به دست آورد. به عبارت دیگر ابتدا باید این نوع داده را تعریف کنیم و سپس یک پرس و جو ایجاد کنیم.به طور کلی توصیه می کنم از یک ابزار ویژه برای کار در MVS استفاده کنید: Imtech Get SPMetal Definition Extension .

    برای کار، به نوعی لیست نیاز داریم. بیایید از یک لیست ساده استفاده کنیم - "لیست سفارشی"؛ عنوان - "تجدید نظر ساده"؛ فیلدهای پیش فرض: شماره، نام.

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

    در مرحله بعد، ما یک فایل کلاس "SimpleReversal.cs" را با استفاده از SPmetal.exe یا یک افزونه برای استودیو ایجاد می کنیم. بیایید یک مرجع به کتابخانه Microsoft.Sharepoint.Linq اضافه کنیم. اطلاعات بیشتر را می توانید در سایت MSDN بیابید.

    بیایید یک تابع Render و my_mess ایجاد کنیم. در آخرین تابع، داده ها را برای نمایش تشکیل می دهیم.

    // عملکرد را بیش از حد بارگذاری کنید
    رندر باطل باطل محافظت شده (نویسنده HtmlTextWriter)
    {
    پایه .رندر(نویسنده);
    my_mess (نویسنده);
    }

    // تابع لیست ما
    public void my_mess (نویسنده HtmlTextWriter)
    {
    // ایجاد زمینه
    DataContext data = new DataContext("http://localhost" );
    // آن را با لیست مربوطه در سایت در ریشه مرتبط کنید
    EntityList<Элемент>Simple_Message = data.GetList<Элемент>("دسترسی ساده");
    // پرس و جو را اجرا کنید - همه ردیف ها را از لیست "دسترسی ساده" انتخاب کنید
    var query = از mess در Simple_Message
    انتخاب پیام؛
    // نمایش تمام داده ها از نتیجه پرس و جو
    foreach (عنصر var در پرس و جو)
    {
    writer.WriteLine( "مورد لیست:"+ elem.Name.ToString());
    writer.WriteBreak();
    }

    }

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

    ادامه بعدا (مقاله تمام نشد)...