0

データベースから値を取得して、ドロップダウン リストに入力しようとしています。

次の関数をデバッグしましたが、期待どおりの結果が得られましたが、戻り値には最後の結果しか格納されていません。

public static string GetAllPlacements(string placementLocation)
    {
        string returnVal = null;
        using (SqlConnection sqlCon = new SqlConnection(ConfigurationManager.ConnectionStrings["websiteContent"].ConnectionString))
        {
            sqlCon.Open();
            string SQL = "SELECT DISTINCT " + placementLocation + " FROM Placements";
            using (var CMD = new SqlCommand(SQL, sqlCon))
            {
                using (var DR = CMD.ExecuteReader())
                {
                    while (DR.Read())
                    {
                        returnVal = DR[selectField].ToString();
                    }
                }
            }
            sqlCon.Close();
        }
        return returnVal;
    }

たとえば、ロンドンとパリの 2 つの結果がありますが、"returnVal" はパリのみを格納しています。

このデータをドロップダウン リストにバインドします。

private void refreshLocation()
{
    ddlLocation.DataSource = Placements.GetAllPlacements("Placement_Location");
    ddlLocation.DataBind();

    ddlLocation.Items.Insert(0, new ListItem("-- Please Select --", "0"));
}

ドロップダウン リストで、オプション Paris は次のように表示されます。

P
A
R
I
S

これの代わりに:

London
Paris

どんな助けでも大歓迎です。

4

1 に答える 1

1

たとえば、文字列のリストを返すように GetAllPlacements を変更する必要があります。

public static List<string> GetAllPlacements(string placementLocation)
    {
        string returnVal = new List<string>;
        using (SqlConnection sqlCon = new SqlConnection(ConfigurationManager.ConnectionStrings["websiteContent"].ConnectionString))
        {
            sqlCon.Open();
            string SQL = "SELECT DISTINCT " + placementLocation + " FROM Placements";
            using (var CMD = new SqlCommand(SQL, sqlCon))
            {
                using (var DR = CMD.ExecuteReader())
                {
                    while (DR.Read())
                    {
                        returnVal.Add(DR[selectField].ToString());
                    }
                }
            }
            sqlCon.Close();
        }
        return returnVal;
    }
于 2013-04-06T22:26:05.840 に答える