יום שלישי, 29 באוקטובר 2013

איך קוראים מידע מבסיס נתונים c# בסיס נתונים windows application c# עבודה עם בסיסי נתונים ב-#C

הקדמה
לפעמים תרצה לשמור מידע מסויים על דברים שונים: על משתמשים, על תכנים, על פרטים ועוד...
הדרך המקובל ביותר לעשות זאת היא ע"י שימוש בבסיס נתונים.
בסיס נתונים הוא מאגר עם טבלאות ושדות, המכיל מידע שאתה מכניס אליו.
במאמר זה תלמד כיצד להתחבר לבסיס נתונים ולעשות בו שימוש בעזרת #C.
רקע - שימוש בבסיסי נתונים
קיימים סוגים שונים של בסיסי נתונים: Microsoft SQL Server, Microsoft Access, MySQL, Oracle ועוד...
לכל בסיס נתונים, יש להתחבר בצורה אחרת. השיטה הפשוטה ביותר להתחברות היא בעזרת מחרוזת חיבור – Cnnection String.
לכל בסיס נתונים מחרוזת חיבור משלו. אנו נתמקד במוכרים ביותר: SQL Server, Access ו-MySQL.
ניתן להתחבר לבסיסי נתונים דרך #C בעזרת מחלקות שונות, אנו נתמקד ב-OleDeb.

כדי להתחבר לבסיס נתונים עלינו להכין כמה דברים:
  1. את מחרוזת ההתחברות
  2. שאילתה שתבצע פעולה בבסיס הנתונים
  3. ביצוע השאילתה

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

לפני התחלת כתיבת הקוד, יש להשתמש במרחב השמות הבא:


using System.Data.OleDb;

אז לפני הכל, בואו נכיר את המשתנים שנשתמש בהם:
OleDbConnection
OleDbCommand
אלה הם שני המשתנים שחייבים להיות בכל פעולה עם בסיס נתונים.
הראשון, תפקידו ליצור את החיבור עם בסיס הנתונים.
השני, תפקידו לבצע את השאילתה.
אנו צריכים להכין את מחרוזת החיבור בנוסף למשתנים. הנה מספר מחרוזות:

Provider = Microsoft.Jet.OLEDB.4.0; Data Source = ‘Path’

Provider=sqloledb; Data Source=’Server’; Initial Catalog=DB name; User ID=Username; Password='Password';

Provider=MySQLProv; Data Source=Server; Initial Catalog=TestSoft; User ID=Username; Password='Password';

כמו שבוודאי ניחשתם, המחרוזת הראשונה שייכת ל-Access, השנייה ל-SQL Server והשלישית ל-MySQL.
במאמר זה אנו נדגים על Access כי הוא הפשוט ביותר להבנה, אבל אתם תוכלו לשנות את מחרוזת החיבור ולהשתמש בכל בסיס נתונים אחר.

התחלת העבודה
לפני הכל, עלינו להגדיר את שני המשתנים הקבועים בכל פעולה עם בסיס נתונים: החיבור והפקודה.
OleDbConnection conn;
OleDbCommand comm;


עד כאן שום דבר חדש. עכשיו נוסיף את מחרוזת החיבור.


conn = new OleDbConnection("Provider = Microsoft.Jet.OLEDB.4.0; Data Source =" + Environment.CurrentDirectory + \\db.mdb);
מה שעשינו זה ליצור מופע חדש של המחלקה OleDbConnection, ולהכניס כפרמטר את מחרוזת החיבור, המקשר אל db.mdb שנמצא באותה תיקייה של הפרוייקט (קובץ ה-exe).

לאחר שחלק החיבור לבסיס הנתונים מוכן, עלינו לעבור לחלק הפקודה, כזכור – המשתנה comm.
הפקודה מורכב משני חלקים: השאילתה שתפקידה לבצע את הפעולה בסיס הנתונים, והמשתנה שבו נשתמש על מנת להתחבר לבסיס הנתונים (במקרה שלנו – conn).
ככה זה יראה:
comm = new OleDbCommand("Select text1 from Table1 where ID = 1", conn);
הגדרנו שהפקודה תשתמש בשאילתה שתפקידה לבחור את השדה text1 מהטבלה Table1 היכן שהשדה ID = 1, והשתמשנו במשתנה conn על מנת להתחבר.

הגדרנו את שני המשתנים לשימוש בבסיס נתונים! עכשיו הדבר היחד שנשאר לנו הוא לקבל את התוצאות (משאילתת בחירה), או לחילופין להפעיל את השאילתה (בשאילתת הוספה\עדכון\מחיקה).

שאילתת קריאה

במידה ואתה משתמש בשאילתת קריאה, מה שנשאר לך עכשיו זה לפתוח את בסיס הנתונים ולקבל את ה-RecordSet – התוצאות התואמות את השאילתה.
נפתח את בסיס הנתונים בצורה הבאה: המשתנה conn והפקודה Open() כאשר נקודה מפרידה ביניהם:

conn.Open();

עכשיו, כמו שהגדרנו את משתני החיבור והפקודה, עלינו גם להגדיר משתנה חדש: dr, שמטרתו לקרוא מבסיס הנתונים את התוצאות שמחזירה השאילתה.

OleDbDataReader dr;
dr = comm.ExecuteReader();

הגדרנו את המשתנה dr, ושורה אחר כך הצבנו בו את הפקודה comm.ExecuteReader, שמטרתה להפעיל את ה"קורא" עבור הפקודה שלנו – comm.
עכשיו מה שנשאר לנו זה להתחיל לקרוא, ולקבל את התוצאה שמחזירה השאילתה:


dr.Read();
string RSinfo = dr["text1"].ToString();
dr.Close();

כמו שאתם ודאי מבינים, לקחנו את המשתנה dr והתחלנו לקרוא ממנו (Read), הגדרנו משתנה בשם RSinfo שמכיל את התוצאה שמקבל dr עבור השדה text1, או במילים אחרות – מקבל את הערך מהשדה text1, ולאחר שסיימנו לקרוא, סגרנו את "הקורא" (Close).
לאחר שסיימנו לעבוד עם בסיס הנתונים, חובה לסגור את החיבור איתו:

conn.Close();

כך קוראים מידע מבסיס נתונים.

אין תגובות:

הוסף רשומת תגובה