וובמאסטר - תיכנות ובניית אתרים

מדריך CSHTML - עבודה עם נתונים: הצגת המידע מתוך בסיס הנתונים

ליאור זמיר ,‏ ג'ון ברייס הדרכה‏ ‏/‏ 6 יולי, 2010
F+
F-
אחרי שיש לך בסיס נתונים עם מידע בתוכו, ניתן להציג את המידע באמצעות בדפי CSHTML. על מנת לבחור את הרשומות מהטבלה להצגה, נשתמש במשפטי SQL, שהם למעשה פקודות אשר מעבירים לבסיס הנתונים.
  1. בחלקו השמאלי של המסך, לחץ על החלק של Files.

  2. בשורש העץ של ה- Web Site, צור דף CSHTML חדש וקרא לו ListProducts.cshtml.

  3. החלף את קוד ה-Markup עם הקוד הבא:

    @{ 
        var db = Database.OpenFile("SmallBakery.sdf");
        var selectQueryString = "SELECT * FROM Products ORDER BY Name";
     }
    <!DOCTYPE html>
    <html>
      <head>
        <title>Small Bakery Products</title>
      </head>
      
      <body>
        <h1>Small Bakery Products</h1>
        <table>
            <thead>
                <tr>
                    <th>Id</th>
                    <th>Product</th>
                    <th>Description</th>
                    <th>Price</th>
                </tr>
            </thead>
            <tbody>
                @foreach (var row in db.Query(selectQueryString))
                {
                <tr>
                    <td>@row.Id</td>
                    <td>@row.Name</td>
                    <td>@row.Description</td>
                    <td>@row.Price</td>
                </tr>
                }
            </tbody>
        </table>
      </body>
    </html>

    בבלוק הקוד הראשון (מסומן בדוגמא) אנו פותחים את קובץ ה-SmallBakery.sdf (בסיס הנתונים) שיצרנו קודם כדי שנובל לשלוף ממנו את נתוני המוצרים. הפעולה DatabaseOpenFile() משערת שקובץ ה-.sdf נמצא בתוך תיקיית ה- App_Data שלך.

    הערה
    תקיית ה- App_Data היא תיקיה מיוחדת ב-CSHTML המשמשת לאחסון קבצי נתונים. למידע נוסף, ראה "חיבור לבסיס נתונים" מאוחר יותר בפרק זה.

    לאחר פתיחת קובץ הנתונים, מגדירים את השאילתה בה נשתמש כדי לשלוף את הנתונים. לצורך כך, אנו משתמשים במשפט SQL הנקרא Select:

    SELECT * FROM Products ORDER BY Name

    במשפט SQL זה, Products מציין את שם הטבלה ממנה נרצה לשלוף נתונים. סימן ה- * מציין שהשאילתה צריכה להחזיר את כל העמודות מתוך הטבלה. (ניתן גם לציין את העמודות מופרדות עם סימן פסיק בינהם אם רוצים לראות רק חלק מהעמודות). משפט ה-Order By מציין כיצד המידע צריך להיות ממוין – במקרה זה, לפי עמודת ה- Name. זה מציין שהמידע ימוין בסדר אלפביתי מבוסס על הערך שם הלקוח עבור כל שורה.

    בגוף הדף, במסגרת ה- HTML, ניצור טבלה שתשמש להצגת המידע. בתוך אלמנט ה- tbody, נשתמש בפקודת

    ה- db.Query() כדי לבצע את השאילתה מול בסיס הנתונים ונעביר לה כפרמטר את משפט ה- SQL המגדיר את השאילתה.

    נשתמש בלולאת foreach כדי לקבל בנפרד כל שורת מידע שמוחזרת על-ידי השאילת, ועבור כל שורת מידע – ניצור שורה בטבלת ה- HTML (אלמנט ה–tr). בכל שורה בטבלת ה-HTML ניצור עמודות (td) לכל אחד מפרטי המוצרים. בתוך גוף הלולאה, המשתנה row מקבל כל פעם השורה מתוך בסיס הנתונים. בכדי לקבל עמודה מסויימת מתוך השורה, נשתמש ב– row.Name או row.Description או שם אחר כלשהו לפי שם השדה שאנו מעוניינים בו.

  4. הצג את הדף באמצעות הדפדפן. תתקבל טבלה שתציג את פרטי המוצרים כפי שנשלפו ממסד הנתונים.

    לחץ להגדלה

שפת Structured Query Language (SQL)

שפת SQL הינה שפה שמשתמשים בה כדי מנהל ולשלוף מידע מתוך בסיס נתונים. היא כוללת פעולות לקבלת מידע ולעדכונו אותו, וכן היא נותנת ליצור, לשנות ולנהל טבלאות בבסיס הנתונים.

הנה מספר דוגמאות של פקודות SQL ומה שהן עושות:

SELECT Id, Name, Price FROM Products WHERE Price > 10.00 ORDER BY Name

משפט זה שולף את עמודות ה – id,Name וה- Price מתוך הרשומות הנמצאות בטבלת Products באותם מקרים בהם הערך בהם הערך בשדה Price גדול מ – 10, ומחזיר את התוצאות בסדר אלפביתי, מבוסס על הערכים של עמודת ה- Name. הפקודה הזאת תחזיר את הרשומות שעונות על הקריטריון, או רשימה ריקה במידה שאין רשומות שעונות עליו.

INSERT INTO Products (Name, Description, Price) 
	VALUES ("Croissant", "A flaky delight", 1.99)

משפט זה גורם להוספת רשומה לתוך טבלת ה-Products, ע"י הכנסת הערכים "Croissant" לעמודת Name, הערך "A flanky delight" לעמודת ה-Description ואת הערך 1.99 לעמודת ה- Price.

DELETE FROM Products WHERE ExpirationDate < "01/01/2008"

פקודה זאת מוחקת רשומות מטבלת Products אשר תאריך התפוגה (expiration date) הוא מוקדם מהתאריך 01/01/2008 (בהתחשב כמובן שקיימת עמודה שכזאת).

משפטי ה–Insert Into וה–Delete לא מחזרים סט של תוצאות. לעומת זאת הם מחזירים מספר אשר מציין כמה רשומות הושפעו ע"י הפעולה.

ישנם מאות משפטי SQL, אבל כולם עוקבים אחרי תבניות דומות לאלו. ניתן להשתמש בפקודותSQL כדי לייצר טבלאות בבסיס הנתונים, לספור את מספר הרשומות בטבלה, לחשב מחירים ולבצע עוד פעולות רבות.

מומלץ לקרוא בעיון את מדריך SQL לצורך לימוד נוסף.

ליאור זמיר, ג'ון ברייס הדרכה

כיום אני ה- Webmaster של תוכנית החדשנות של HPE Software.
לפני כן, הייתי מנהל תחום Webmaster ומרצה בכיר בג'ון-ברייס (במשך 9 שנים) בקורסים לפיתוח ותיכנות באמצעות Microsoft .NET, מולטימדיה, בניית אתרי אינטרנט ואינטראנט. פיתוח הדרכה ומתן ייעוץ טכנולוגי.
תגיות: ASP.NET‏  /  CSHTML‏  

תגובות בפייסבוק

תגובות למאמר



עוד במדריך

תגיות פופולאריות

X
הצטרף לעמוד שלנו בפייסבוק להישאר מעודכן!
וובמאסטר © כל הזכויות שמורות