IOPanel

חזור   IOPanel > דבר חופשי > תוכנה ומערכות הפעלה > תיכנות
עמוד ראשי הירשם חיפוש הודעות מהיום סמן פורומים כנקראו

תיכנות פורום בנושאי תיכנות , פיתוח אתרים , שפות תיכנות , אפליקציות סלולר וטאבלטים.

תוכנה ומערכות הפעלה : תיכנות

עזרה בc# . מילוי DROPDOWN LIST

שלום. אני עובד בVS2008 ו SQL SERVER 2005 EXPRESS אני רוצה למלא DROPDOWN LIST מתוך STORED PROCEDURE בשרת SQL המקומי ...
תגובה
 
קישור חוזר הגדרות אשכול אפשרויות הצגת נושא
ישן 16-11-09, 22:40   #1 (קישור ישיר)
IO Rookie
 
תאריך הצטרפות: Nov 2009
הודעות: 6
שאלה עזרה בc# . מילוי DROPDOWN LIST

שלום.
אני עובד בVS2008 ו SQL SERVER 2005 EXPRESS
אני רוצה למלא DROPDOWN LIST מתוך STORED PROCEDURE בשרת SQL המקומי
לאחר שיצרתי בדף הASP את הWEB CONTROL המתאים הלכתי לדף הקוד. לפונקציה של הDDL שיצרתי.
יצרתי התקשרות מתאימה וקראתי לSP שיצרתי. הכל יצא לאובייקט מסוג SQLDATAREADER:
ddl.DataSource = cmd.ExecuteReader();
ddl.DataBind();
conn.Close();

הסוגריים יצאו הפוכים בגלל העיברית. אבל המסר הובן
בהצגת העמוד כשאני לוחץ על הDDL אין בו כלום.
מה שכחתי? ומדוע זה לא עובד?
אודה ואשמח לכל עזרה
israeliviper לא מחובר   הגב עם ציטוט
ישן 16-11-09, 22:53   #2 (קישור ישיר)
IO Folding Team
 
סמל האישי של static
 
תאריך הצטרפות: Dec 2007
הודעות: 2,111
ברירת מחדל

הנה דוגמה.. הדגשתי באדום את השורות שהחסרת

קוד:
try
   {
    // Get an open database connection
    dbConn = dbHelper.openDatabaseConnection();


    // define the sql to perform the database insert
    sqlStmt = "Cust_GetCompanyName"; // Stored Procedure to use


    // Establish a new Command
    SqlCommand cmd = new SqlCommand();


    // Set command to create your SQL statement
    cmd.CommandText = sqlStmt;


    // Set the database connection
    cmd.Connection = dbConn;
        
    // Set the command type to text
    cmd.CommandType = CommandType.StoredProcedure;


    // Execute the SQL Statement
    SqlDataReader sqlReader = cmd.ExecuteReader();


    if (sqlReader.HasRows)
    {
     ddl.DataSource = sqlReader;
     ddl.DataTextField = "CompanyName";
     ddl.DataValueField  = "CompanyName";
     ddl.DataBind();
    }
   }
__________________
cpu: i7 920 D0| mobo: Gigabyte Ga-EX58-UD4P | mem: Mushkin Black Line 12GB 1600MHz 9-9-9-24 | gpu: PNY 670GTX | case: Antec P190 | psu: Antec neo-link 1200w |
hd: 1TB Samsung F1 + Intel SSD 120Gb 330 , 320GB WD AAKS | display: Samsung T240 24" | keyboard: Logitech Wave | mouse: Logitech MX Revolotion + G700 | Speakers: Logitech Z-5500
static לא מחובר   הגב עם ציטוט
ישן 17-11-09, 0:06   #3 (קישור ישיר)
IO Rookie
 
תאריך הצטרפות: Nov 2009
הודעות: 6
ברירת מחדל

תודה על התגובה.
זה עדיין לא עובד.
זה הקוד המלא:
מחלקת DBHLPER שיצרתי:
קוד:
public static class DBhelper
{
 
    public static SqlDataReader exeDATA(string connString, string sqlcmd,params SqlParameter[] prm)
    {
        SqlConnection conn = new SqlConnection(connString);
        SqlCommand cmd = new SqlCommand(sqlcmd, conn);

        return cmd.ExecuteReader();

    }

}
הקוד :
קוד:
public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {

    }
    protected void ddl_SelectedIndexChanged(object sender, EventArgs e)
    {

        SqlDataReader dr = DBhelper.exeDATA("server=sql-server;database=northwind;user id=saaa;password=*****", "spGetCategories");

        if (dr.HasRows)
        {
            ddl.DataSource = dr;
            ddl.DataTextField = "CategoryName";
            ddl.DataValueField = "CategoryName";
            ddl.DataBind();
           
        }
    }
}
israeliviper לא מחובר   הגב עם ציטוט
ישן 17-11-09, 9:44   #4 (קישור ישיר)
IO Folding Team
 
סמל האישי של static
 
תאריך הצטרפות: Dec 2007
הודעות: 2,111
ברירת מחדל

אממ.. ראית אם בכלל אתה מצליח להוציא נתונים מה DB, ז"א האם הREADER שלך מכיל משהו ופשוט לא ממלא את ה DDL או שהREADER אפילו לא מקבל נתונים...

בכל אופן תוסיף את השורה באדום:

קוד:
public static class DBhelper
{
 
    public static SqlDataReader exeDATA(string connString, string sqlcmd,params SqlParameter[] prm)
    {
        SqlConnection conn = new SqlConnection(connString);
        SqlCommand cmd = new SqlCommand(sqlcmd, conn);
cmd.CommandType = CommandType.StoredProcedure;

        return cmd.ExecuteReader();

    }

}
__________________
cpu: i7 920 D0| mobo: Gigabyte Ga-EX58-UD4P | mem: Mushkin Black Line 12GB 1600MHz 9-9-9-24 | gpu: PNY 670GTX | case: Antec P190 | psu: Antec neo-link 1200w |
hd: 1TB Samsung F1 + Intel SSD 120Gb 330 , 320GB WD AAKS | display: Samsung T240 24" | keyboard: Logitech Wave | mouse: Logitech MX Revolotion + G700 | Speakers: Logitech Z-5500
static לא מחובר   הגב עם ציטוט
ישן 17-11-09, 12:26   #5 (קישור ישיר)
IO Rookie
 
תאריך הצטרפות: Nov 2009
הודעות: 6
ברירת מחדל

שוב תודה, באמת שכחתי להגדיר מאיזה סוג פקודה אני מפעיל.
לצורך ניסוי יצרתי פרוייקט חדש לבדוק אם בכלל מתקבלים נתונים. ואכן ביצירת טבלה דינאמית אכן הנתונים נשלפים כמו שצריך. כך שהבעיה היא לא בREADER. אני לא מצליח לאתר את התקלה...
לצורך הניסוי אני עובד ללא מחלקת DBHLPER אלא מגדיר הכל באותו מקום.
ייתכן שאולי אני לא עובד בפונקציה הנכונה? כלומר אני לא רואה שום הגיון בלכתוב שורת קוד כל שהיא בPAGE LOAD...
כל הקוד נרשם בפונקציה של הDDL.:
ציטוט:
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{



}
protected void ddl_SelectedIndexChanged(object sender, EventArgs e)
{

SqlConnection conn = new SqlConnection("blablablablablablablablab");
conn.Open();


SqlCommand cmd = new SqlCommand("spGetCategories", conn);
cmd.CommandType = CommandType.StoredProcedure;



SqlDataReader dr = cmd.ExecuteReader();

if (dr.HasRows)
{
ddl.DataSource = dr;
ddl.DataTextField = "CategoryName";
ddl.DataValueField = "CategoryName";
ddl.DataBind();
}


conn.Close();

}
}
israeliviper לא מחובר   הגב עם ציטוט
ישן 17-11-09, 13:16   #6 (קישור ישיר)
IO Folding Team
 
סמל האישי של static
 
תאריך הצטרפות: Dec 2007
הודעות: 2,111
ברירת מחדל

עכשיו הכל ברור... לא שמתי לב שבחרת לשים את הפונקציה שלך ddl_SelectedIndexChanged
מה הפונקציה הזאת אומרת בעצם:
"ברגע ששינית את הבחירה שלך מתוך האפשרויות שכבר קיימות ב DDL תבצע פעולה כלשהי"
אבל אין כלום בתוך ה DDL וה- EVENT לא יעבוד.

בגלל זה אתה חייב לשים את זה ב PAGE LOAD או אפילו יותר טוב בתוך ה- DDL_LOAD או בפונקציה אחרת שתהיה אחראית למלא את ה DDL

הכנתי דוגמה אפילו כדי להיות בטוח והיא עובדת

קוד:
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;

public partial class _Default : System.Web.UI.Page 
{
    string con = "Data Source=MIRSERVER;Initial Catalog=Lior;Persist Security Info=True;User ID=TENGAL;Password=TENGAL";

    protected void Page_Load(object sender, EventArgs e)
    {

    }

    protected void DropDownList1_Load(object sender, EventArgs e)
    {
        SqlConnection conn = new SqlConnection(con);
        conn.Open();

        SqlCommand cmd = new SqlCommand("spGetNames", conn);
        cmd.CommandType = CommandType.StoredProcedure;

        SqlDataReader dr = cmd.ExecuteReader();

        if (dr.HasRows)
        {
            DropDownList1.DataSource = dr;
            DropDownList1.DataTextField = "FirstName";
            DropDownList1.DataValueField = "FirstName";
            DropDownList1.DataBind();
        }
        conn.Close();
    }
}
וה stored procedure שבניתי לצורך הבדיקה

קוד:
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go

ALTER PROCEDURE spGetNames

AS
BEGIN

    SET NOCOUNT ON;
    SELECT FirstName FROM Students
END
GO
__________________
cpu: i7 920 D0| mobo: Gigabyte Ga-EX58-UD4P | mem: Mushkin Black Line 12GB 1600MHz 9-9-9-24 | gpu: PNY 670GTX | case: Antec P190 | psu: Antec neo-link 1200w |
hd: 1TB Samsung F1 + Intel SSD 120Gb 330 , 320GB WD AAKS | display: Samsung T240 24" | keyboard: Logitech Wave | mouse: Logitech MX Revolotion + G700 | Speakers: Logitech Z-5500
static לא מחובר   הגב עם ציטוט
קישור פירסומי
ישן 17-11-09, 14:42   #7 (קישור ישיר)
IO Rookie
 
תאריך הצטרפות: Nov 2009
הודעות: 6
ברירת מחדל

תותח!!
אכן לא חשבתי על זה.
תודה רבה. עובד יופי!
תודה על כל העזרה והסבלנות
israeliviper לא מחובר   הגב עם ציטוט
ישן 17-11-09, 14:57   #8 (קישור ישיר)
IO Folding Team
 
סמל האישי של static
 
תאריך הצטרפות: Dec 2007
הודעות: 2,111
ברירת מחדל

סבבה בכיף
__________________
cpu: i7 920 D0| mobo: Gigabyte Ga-EX58-UD4P | mem: Mushkin Black Line 12GB 1600MHz 9-9-9-24 | gpu: PNY 670GTX | case: Antec P190 | psu: Antec neo-link 1200w |
hd: 1TB Samsung F1 + Intel SSD 120Gb 330 , 320GB WD AAKS | display: Samsung T240 24" | keyboard: Logitech Wave | mouse: Logitech MX Revolotion + G700 | Speakers: Logitech Z-5500
static לא מחובר   הגב עם ציטוט
תגובה


הגדרות אשכול
אפשרויות הצגת נושא

חוקי משלוח הודעות
אתה לא יכול לשלוח הודעות חדשות
אתה לא יכול לשלוח תגובות
הינך לא יכול לצרף קבצים להודעותיך
אתה לא יכול לערוך את הודעותיך

vB code הינו פועל
סמיילים הינו פועל
קוד [IMG] הינו פועל
קוד HTML הינו כבוי
Trackbacksהינו פועל
Pingbacks הינו פועל
Refbacks הינו פועל

נושאים דומים
אשכול מפרסם האשכול פורום תגובות הודעה אחרונה
דיון ראשי - Need For Speed UnderCover Car list piniz משחקים וקונסולות 15 20-09-08 1:06
Ddr2 Ram List - צ'יפים במודולים של זכרונות שונים. S&M זיכרונות 21 08-07-08 12:11
Messenger - Ignore list Shay תוכנה ומערכות הפעלה 7 12-10-07 1:22


כל הזמנים הם GMT +3. השעה כרגע היא 16:36.





מופעל על ידי: vBulletin
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO
IOPanel.net © כל הזכויות שמורות