data bind ב select box

mandymo

New member
data bind ב select box

שלום אנשים. יש לי פונקציה שמחזירה data set של טבלה אחת עם 2 עמודות. אני רוצה לקבל את ה data set הזה, ולעשות לו data bind ל select box (או כל דבר אחר שיציג לי את התוכן של אחת העמודות ה value ואת השניה ב text.
 

i d a n s t

New member
הנה

אתה יכול ללמוד כאן: http://www.aspnet101.com/aspnet101/aspnet/codesample.aspx?code=ddlTextValue
 

mandymo

New member
פשוט...

ב DATA READER אני פשוט עשיתי READ שמתי אותו ב listItem, ואז עשיתי ADD של ה LIST ITEM ל SELECT. עם DATASET אני לא מצליח לקרוא (עם RAEAD). ואים אני עושה select.datasource = ds אני מקבל system.data.datarowView בכל אחת מהאופציות אני מתאר לעצמי שזו איזו שטות שלא הגדרתי, אבל אין לי מושג מה... תודה יוסי
 

Justin Angel

New member
קה פרובלמה מואי צ'יקיטה?

להזכירך, DataReader מייצג סט רשומות אחיד (קרי, טבלה), אך DataSet מייצג סכמה של סטי רשומות אחידים (קרי, טבלאות). צריך להגדיר לאיזה טבלה את עושה DataBind ואת צורת ה-DataView. למשל:
// set DataSource for DropDownList on first table in DataSet myDDDL.DataSource = myDateSet.Tables[0].DefaultView; // or Chhose any table by name myDDDL.DataSource = myDateSet.Tables["MyTable"].DefaultView;​
 

mandymo

New member
עדיין...

לא מצליח לעשות את זה. זה הקוד שאמור לעושת את ה BIND
DataSet ds = new DataSet(); ds = b.getCampaignList(); slctCampain.DataSource = ds.Tables[0].DefaultView; slctCampain.DataBind();​
וזה הקוש שמחזיר לי את ב DS
OleDbDataAdapter da = new OleDbDataAdapter(); DataSet ds = new DataSet(); sqlCommand.CommandText = queryGetCampaign; da.SelectCommand = sqlCommand ; sqlConnection.Open(); da.Fill(ds); sqlConnection.Close(); return ds;​
מה אני מפספס?? תודה יוסי
 

asp123

New member
כשאתה מכניס נתונים לDDL אתה צריך...

לאזכר את השם של הרשומה שאתה רוצה להכניס ... הנה דוגמא קטנה לDataSet עם DDL:
DDL.DataSource = ds; DDL.DataTextField= " שם הרשומה שתופיע כטקסט "; DDL.DataValueField = "שם הרשומה שיכניס ערך לכל אופציה בסלקט לפי"; DDL.DataBind();​
כלומר אם קוראים לשם הרשומה שאתה רוצה שתכנס כטקסט היא : name. ושם הרשומה שתכנס כערך(Value) היא: address. הקוד יהיה כך:
DDL.DataSource = ds; DDL.DataTextField = "name"; DDL.DataValueField = "address"; DDL.DataBind();​
כל רשומה שתבחר תהיה שם של מישהו והערך של אותה הבחירה יהיה הכתובות של אותו האדם שבחרת. (סתם דוגמא, תשנה אותה לצרכים שלך).
 

mandymo

New member
שאלה חדשה

אני מקבל לפונקציה ArrayList שמכיל מילים. אני מעוניין עבור כל מילה: -אים המילה קיימת בטבלה - לקבל אותה ופרטים נוספים עליה (לצורך העניין, ID) -אים המילה לא קיימת בטבלה - לקבל אותה וערך דיפולטי (-1, לצורך העניין) חלק א טרוויאלי. עם חלק ב אני מסתבך. הפתרון היחיד שחשבתי עליו הוא ליצור טבלה זמנית, לכתוב אליה את כל המילים מתוך ה ArrayList, ואז לא תהיה לי בעיה ליצור שאילת שתוציא לי את המילים שקיימות בטבלה הזמנית אך לא קיימות בטבלה ה"ראשית" זה נראה לי פתאון קצת עקום ומסוכן (מה קורה אים 2 אנשים פונים בו"ז לפונקציה??) יש רעיון יותר טוב??? שוב תודה יוסי
 

Just ice

New member
איפה הבעיה ?

יש לך מילה מסויימת, אתה מריץ על ה ID שלה שליפת הנתונים מה DB. אם חזרו תוצאות מהשליפה - היא קיימת, וקיבלת את הנתונים. אם לא חזרו תוצאות מהשליפה, היא לא קיימת, את המילה עצמה כבר יש לך, ואת הערך הדיפולטי אתה קובע...
 

mandymo

New member
כן...

אבל אים יש לי 100 מילים. אני לא רוצה לבדוק אחת אחת ואז להחזיר מערך של מילים שלא קיימות. כמו כן, אני מעוניים שבסוף הכל יכנס ל DATASET אחד שאני אעשה לו BIND ל DATAGRIG. אים אפשר להוסיף "ידנית" ערכים ל DATASET, זה פחות או יותר יפתור לי את הבעיה.
 

Just ice

New member
../images/Emo35.gif

Dataset מורכב מ DataTables (בין השאר), ול DataTable בהחלט אפשר ליצור ולהוסיף רשומות בצורה תכנותית.
 

mandymo

New member
אז ככה...

מה שחשבתי לעשות זה לקבל את כל מה שקיים בטבלה לתוך DATASET, אח"כ לעבור ביטוי ביטוי (מיתןך כלל הביטויים שקיבלתי) וליבדוק אם הוא שםץ אם כן יופי. אם לא להוסיף אותו עם הערכים הדפולטיים. השאלה היא - איך אני קורא נתונים מתוך DATASET?
 
למעלה