שאלה בנושא DataTable

ebizza

New member
שאלה בנושא DataTable

שלום, אני מעוניין לעשות שאילתא מהסוג הבא על אוביקט מסוג DataTable. select column1, column2 from tableName group by column1, column2 אני מכיר את הפונקציה select של אוביקט dataTable, אך אני לא יודע איך לעשות זאת איתה (אם בכלל אפשרי). בנוסף, select זה מחזיר מערך של שורות, האם יש דרך לקבל טבלה (dataTable) משורות אלו, לא ע"י ללואה (כלומר, שלא אני יבנה אותה בעצמי)? בתודה, ebizza.
 

ebizza

New member
שאלה נוספת...

איך מעתיקים את שורות למשל 5 ו- 7 מטבלה אחת (dataTable), לטבלה חדשה (עם דגש על חדשה - כלומר, האם תחילה יש להגדיר לטבלה החדשה את כל אותן העמודות של הטבלה הראשונה?)?
 

ebizza

New member
לא...

יודע איך מנקים אבל מצאתי את הפונקציה importRow שעוזרת. בכל אופן, תודה. אם למישהו יש רעיון איך לפתור את השאלה הראשונה מאד יעזור.
 

asafeven

New member
dataadapter ?

אם אתה משתמש ב-dataadapter לבצע את השאילתה ואז אתה עושה fill ל-datatable אתה מקבל טבלה שלמה בלי לבנות אותה
 

ebizza

New member
איך אפשר להשתמש ב- dataAdapter על..

טבלה בזיכרון, כלומר, על מופע של dataTable? אם יש דרך (אני ניסיתי ולא מצאתי) זה ממש יעזור לי.
 

asafeven

New member
בקוד ככה:

if (cn.State == ConnectionState.Closed) cn.Open(); da = new OleDbDataAdapter("Select Name from tblBuisnessDetails Order By Name",cn); dt = new DataTable(); da.Fill(dt); cn.Close(); return dt;​
cn הוא האובייקט connection שלי. da הוא דאטאאדפטר. dt - דאטאטייבל.
 

ebizza

New member
לא הבנת...

אני צריך לבצע את השאילתא על מופע של טבלה מסוג dataTable (ולא על טבלה מה- dataBase). כדי להבהיר את עצמי טוב יותר למשל: איך תבצע/י שאילתא על הטבלה שלך dt(לאחר ה- fill בקוד שלך)?
 

itaym02

New member
מה קרה לשאילתה רגילה בתוך לולאה?

foreach (DataRow Row in DT.Rows) { if(Row["ColumnName"]=="Print Me") { MessageBox.Show(Row[0]+" "+Row[1]); } } שפת תיכנות, כן? לא SQL​
 

ebizza

New member
לא קרה כלום ואף ממשתי בתכנות, אבל..

זה מאד מסורבל ומורכב, והרבה יותר קל, ולדעתי אלגנטי - לעשות זאת בעזרת כמה שאילתות SQL פשוטות.
 

itaym02

New member
זו עדיין שפת תיכנות

וSQL עושה בדיוק את זה מאחורי הקלעים.
 

ebizza

New member
אתה צודק, אבל לפי הגישה הזו למה...?

אנחנו לא כותבים בשפת C. לדעתי, אם ניתן לנצל כוח של שפה - דבר שהופך לקל ואלגנטי, זה מצויין.
 

itaym02

New member
זה כבר עיניין של שימוש

אם אני רוצה ישומים פשוטים שיעבדו מהר - אני אכן מתכנת בשפת C. בC# לאומת זאת קל יותר (זמן פיתוח=כסף) לתכנת מערכות שעובדות מול מאגרי מידע (אני בטוח שיש מונח מיקצועי לכך)+GUI נירחב. יתכן שמה שאתה רוצה לעשות אפשר בעזרת DATAVIEW. תקרא, אני לא מכיר. בכל מקרה לא לחשוב שמיקרוסופט כיסו את כל האפשרויות.
 

ebizza

New member
אגב, כתיבה ב- C לעומת שפות מתקדמות

יותר... לפי דעתי הזמן הוא מימד אחד יש עוד הרבה דברים נוספים כמו קריאות ו- reuse (ועוד...) שמאפינים שפות OOP.
 
למעלה