מדריך NET. – מבוא ל- ADO.NET
ActiveX Data Objects) ADO.NET) הינה ספריה של רכיבים שמטרתם לעבוד עם מידע. השימוש העיקרי של ADO.NET הוא עבודה מול Database לשליפה ועדכון של מידע.
ADO.NET מחולק לשתי גישות עבודה עיקריות:
- Connected – גישה המאפשרת לעבוד מול DB במצבים בהם אנו יכולים להתחבר ל- DB.
לדוגמא: מערכת און ליין שכל עדכון מתעדכן מיד ב- DB. - Disconnected – גישה המאפשרת לשלוף נתונים מ- DB, לעבוד איתם בתוכנית ובהמשך לסנכרן אותם מול ה- DB. גישה זו מתאימה יותר במקרים בהם אין חיבור רציף ל- DB.
לדוגמא: מערכת הפצת מוצרים כך שלכל מפיץ יש מכשיר המכיל את סידור העבודה שלו לאותו היום ובזמן העבודה הוא צריך לעדכן מה הוא ביצע. בזמן העבודה הוא נמצא מחוץ למשרד ולכן לא תמיד יש לו חיבור ל- DB המרכזי.
Database provider
לכל ספק DB (מיקרוסופט, אורקל וכד') יש את שיטת התחברות שלו מול ה- DB (ברמת התקשורת). כל ספק DB מספק רכיבים אשר דורשים התקנה היכן שנמצאת תוכנת לקוח שמעוניינת להתחבר ל- DB. כדי שהמפתחים לא יצטרכו ללמוד מחלקות שונות לעבודה מול DB שונים, קבעו תקן ממנו יורשות כל המחלקות לעבודה מול DB, כאשר כל מחלקה מתאימה לעבודה מול סוג אחר של DB והמימוש הפנימי שלה הוא שונה (פולימורפיזם). לכל מחלקה כזו יש קידומת המרמזת על סוג ה- DB מולו היא יודעת לעבוד.
לדוגמא: DBConnection – מחלקת בסיס להתחברות ל- DB וממנה יורשים SqlConnection לעבודה מול SQL Server ו- OracleConnection לעבודה מול Oracle (וכך לכל סוגי ה- DB).
כל שמות המחלקות הכלליות (אבסטרקטיות) מתחילות ב- DB, כל שמות המחלקות לעבודה מול SQLServer מתחילות ב- SQL וכך הלאה.
כל קבוצת מחלקות כזו שמתאימה לעבודה מול DB מסויים נמצאת בתוך namespace:
- System.Data.SqlClient – לעבודה מול Microsoft SQL Server
- System.Data.OracleClient – לעבודה מול Oracle
- System.Data.OleDb – מתאים לכל סוגי ה- DB, משמש בעיקר לעבודה מול Access
- ויש כמובן עוד הרבה.
בהמשך נתייחס לעבודה מול Microsoft SQL Server, כך שחשוב להבין ששיטת העבודה דומה מול כל DB שנעבוד מולו.
את הדוגמאות נבצע מול DB לדוגמא בשם NorthWind.
חיבור ל- DB באמצעות ה- Visual studio
ניתן להתחבר ל- DB מתוך סביבת ה- Visual Studio. המטרה היא שבזמן פיתוח נוכל לראות את מצב ה- DB ולעדכן אותו. חיבור זה אינו קשור לתוכנית שלנו ואינו משפיע עליה. בנוסף ניתן בשיטה זו להעתיק אל התוכנית שלנו את ה- connection string שמיצג את פרטי החיבור ל- DB (מיקום, שם, פרטי הזדהות וכד').
יש לגשת לחלון ה- Server Explorer (במידה והוא לא מופיע אפשר להציג אותו מתפריט View) ולהוסיף חיבור חדש ל- DB באמצעות הלחצן Connect to Database:
בחלון שיפתח יש לבחור:
- סוג ה- Data source) DB)
- המיקום שלו – Server name (כתובת IP / שם מחשב)
- שיטת ההזדהות (Windows / SQL Server)
- שם ה- DB (בדוגמא שלנו Northwind)
- בכפתור Advanced ישנם עוד מאפיינים מתקדמים יותר שאפשר לקבוע ל- connection
- ניתן לבדוק את ה- connection באמצעות הכפתור Test Connection.
לאחר לחיצה על OK יתווסף החיבור לחלון:
בחלון ה- Properties ניתן לראות את מאפייני החיבור כולל ה- Connection String (ניתן להעתיק אותו משם לתוכנית שלנו. נעשה זאת בהמשך. ):
שמירת ה- Connection String
את ה- connection string נהוג להחזיק במקום אחד בתוכנית, כדי שאם נצטרך לשנות אותו נשנה רק במקום אחד. כמו כן, מומלץ להחזיק את ה- connection string באופן חיצוני לתוכנית כדי שעדכון ב- connection string לא יצריך קימפול של התוכנית מחדש. לכן נחזיק את ה-connection string בקובץ config חיצוני:
הוספת קובץ config מתבצעת דרך Add New Item ובחירה ב-Application Configuration File (אין לשנות את שם הקובץ):
קובץ זה כתוב בפורמט XML ובתוכו ניתן להכניס את ה- connection string בצורה הבאה, כאשר השם הוא שם לבחירתנו שנשתמש בו בהמשך:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<connectionStrings>
<add name="NorthwindConStr"
connectionString="Data Source=.\sqlExpress;Initial Catalog=Northwind;Integrated Security=True"
providerName="System.Data.SqlClient"/>
</connectionStrings>
</configuration>
מתוך התוכנית ניתן לקרוא את ה- connection string מהקובץ לפי השם בצורה הבאה:
string conStr = ConfigurationManager.ConnectionStrings
["NorthwindConStr"].ConnectionString;
חשוב לשים לב שלפקודה זו צריך Reference ל- System.Configuration
בנוסף חשוב לשים לב שלאחר קומפילציה הקובץ יהפוך להיות כשם ה- exe בתוספת הסיומת config. לדוגמא אם שם התוכנית הוא MyApp.exe שם ה- config יהיה MyApp.exe.config. את הקובץ הזה חובה לשים ביחד עם קובץ ה- exe כאשר רוצים להריץ את התוכנית.
תגובות בפייסבוק