FileDialog
OpenFileDialog – אובייקט
לפתיחת חלון של המערכת הפעלה לבחירת קבצים
OpenFile.Filter – סינון
התוצאות שיוצגו בחלון. נוכל להגביל את המשתמש לקבצים מסוימים – החלק הראשון של
הפקודה מבצע סינון שיוצג רק קבצים בעלי סיומת כזאת והחלק השני זה ההגבלה שהמחשב
יקלוט רק קבצים אלו
OpenFile.Filter = "image files" + "(*.jpg, *.jpeg
, *.gif) |*.jpg, *.jpeg , *.gif";
כותרת החלון
theDialog.Title = "Select an image";
ניתן להגדיר מיקום ברירת מחדל ששם יפתח החלון (תיקיית
המשתמש \תמונות)
theDialog.InitialDirectory = @"C:\Users";
DB – בסיסי נתונים
בסיס נתונים או מסד נתונים (באנגלית: Database, או בקיצור DB)
הוא אמצעי המשמש לאחסון מסודר של נתונים במחשב, לשם איחזורם ועיבודם.
SQL -
(קיצור של Structured Query Language) היא
שפת מחשב לרישום\ שליפת נתונים מבסיס הנתונים
קיימים מספר מוצרים מובילים כמו לדוג' oracle \ MySQL\
SQLSrver בשיעור למדנו לעבוד עם DB שמובנה בתוך הVS
מקש ימני על הפרויקט > ADD >< new item Service-based Database
אחרי שנוצר הבסיס נתונים ניתן להוסיף טבלאות בתיקיית Tables
לטבלה נוסיף עמודות בהתאם לצרכים > Update ליצירת הטבלה
v
לכל שדה יש מס'
הגדרות טקסט\מספרי\ גודל – האם לאפשר שדה ריק
Identity specification – במאפייני
השדה ניתן להגדיר שהעמודה תהיה מזהה של הרשומה (בד"כ עושים בעמודת ID) identity specification = true = שעמודה
זו תהיה מזהה חד ערכי שהמערכת נותנת אוטומטי לכל רשומה חדשה
בהגדרות הבאות נגדיר מאיזה מספר להתחיל ובכמה לעלות בכל פעם
בעובדה עם DB יש להוסיף את הספרייה
הבאה שמכילה את הפקודות לגישה\קריאה \ כתיבה לDB
using System.Data.SqlClient;
חיבור לDB
לאחר שיצרנו את המסד נתונים כשרוצים לגשת בקוד צריך להגדיר לאיזה מסד
לגשת מכיוון שיכלו להיות בפרויקט יותר ממסד אחד
SqlConnection connection
= new SqlConnection (מחרוזת מיקום הטבלה)
את המיקום נמצא - במאפייני הBD (server explorer) > נמצא הconnection string
טיפ – לא לשכוח לשים @ לפני המחרוזת ע"מ להבהיר למחשב להתייחס ל\
כתו ולא כפקודה (אחרת נצטרך להחליף את כל ה\ ל\\)
SqlConnection – פקודה
להתחברות עם הDB
Sqlcommand – מה לעשות
לאחר ההתחברות
שמירת נתונים בDB
using - כל חיבור לDB נעטוף ב using ע"מ לוודא שבסיום הפעולה החיבור ייסגר –
כשפונים לDB מתבצע חיבור לקבלת משאבים במידה ולא נסגור
את החיבור כשנרצה לפנות שוב החיבור יהיה תפוס לכן תוחמים את החיבור בבלוק וביציאה
מהבלוק המערכת מנתקת את החיבור
1-3 התחברות לDB באמצעות אובייקט החיבור
> פתיחה
6 – יצירת אובייקט פעולה
שמכיל את סוג הפעולה (שורות 7-9)
7 – הכנס לתוך טבלת X 8 - בעמודות XYZ 9 – את הערכים ABC
ניתן להכניס ערכים ישירות לBD או
לחילופין לבצע הפניה באמצעות @ למשתנה שלשם נוסיף בהמשך את המידע
16- תבצע את השאילתה
18- סגירת החיבור
1.
using (connection)
2.
{
3.
connection.Open();
4.
{
5.
using (
6.
command = new SqlCommand(
7.
"INSERT INTO place" +
8.
"(name , country , image)" +
9.
"VALUES(@name , @country ,
@image)"))
10.
{
11.
command.Connection = connection;
12.
command.Parameters.AddWithValue("@name", textBoxName.Text);
13.
command.Parameters.AddWithValue("@country", textBoxName.Text);
14.
command.Parameters.AddWithValue("@image", image);
15.
16.
command.ExecuteNonQuery();
17.
}
18.
connection.Close();
19.
MessageBox.Show("Successfully
loaded");
20.
}
21.
}
שליפת נתונים
1. יצירת אובייקט עם שדות בהתאם לטבלה (מטעמי נוחות נקרא לשדות באותם
השמות של העמודות)
2. יצירת list ח של האובייקט
3. שליפת הנתונים מהBD לתוך list
בצורה כזאת נוכל לבצע חיתוכים \ חיפוש על האוסף – יותר קל מלעשות
חיפוש ישירות בטבלה
פקודת השליפה
new SqlCommand("SELECT id , Name ,
country , FROM placeTable", connecttion)) ;
תשלוף את העמודות XY > מתוך הטבלה ... FROM> משתנה שמכיל את
המיקום של הטבלה
SqlDataReader – איפה
לאחסן את הנתונים שאספנו מהDB – האובייקט
בונה טבלה בזיכרון בהתאם לטבלה הDB
על עמודה בטבלה ממוספרת (מ-ס)
שורה 10 – תעבור על האובייקט ובכל פעם תיצור אובייקט חדש מסוג place בתוך list places .
הפקודה Reader.Read() מאפשרת לנו לדעת מתי נגמרה הטבלה – תרוץ כל
זמן שאתה ממוצא מה לקרוא
שורות 14-17 – קונסטרוקטור עבור האובייקט לבצע השמה לפי מספר העמודה בטבלת Reader – נדרש לציין את סוג האובייקט (int\string)
1.
connection = new SqlConnection(path);
2.
places = new List<place>();
3.
using (connection)
4.
{
5.
connection.Open();
6.
using (command =
7.
new SqlCommand
("SELECT
id , Name , country , image FROM place", connection));
8.
using (SqlDataReader Reader = command.ExecuteReader())
9.
{
10.
while (Reader.Read())
11.
{
12.
places.Add(new place
13.
{
14.
id = Reader.GetInt32(0),
15.
name = Reader.GetString(1),
16.
country = Reader.GetString(2),
17.
picture = (byte[])Reader["image"]
18.
});
הכנסת תמונה לDB
הDB שומר
את התמונה במערך של בייטים – ע"מ להפוך תמונה לבבייט נדרשים ש3 שלבים
1.
FileStream - ממיר את התמונה לאוסף בייטים
מיקום התמונה > פתיחה > קריאה = המשתנה יקבל מערך בייטים של
התמונה
FileStream stram = new FileStream(path, FileMode.Open,
FileAccess.Read);
2.
BinaryReader - קורא את המערך
BinaryReader br = new BinaryReader(stram);
3.
הכנסת הבייטים לתוך
מערך
byte[] image =
br.ReadBytes((int)stram.Length);
אין תגובות:
הוסף רשומת תגובה