0

我已将本地数据库中的一些数据添加到列表中,现在我需要在下拉列表中显示此列表的值。该列表包含以下数据:

  • 爪哇
  • 。网
  • JavaScript
  • 红宝石
  • Python

方法:

public List<string> DisplayTopicNames()
{


    // declare the connection string 
    string database = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|/Forum.accdb;Persist Security Info=True";

    // Initialise the connection 
    OleDbConnection myConn = new OleDbConnection(database);
    //Query
    string queryStr = "SELECT TopicName FROM Topics";
    // Create a command object 
    OleDbCommand myCommand = new OleDbCommand(queryStr, myConn);
    // Open the connection 
    myCommand.Connection.Open();
    // Execute the command 
    OleDbDataReader myDataReader = myCommand.ExecuteReader();


    // Extract the results 
   List<string> topicNames = new List<string>();

    while (myDataReader.Read())
    {
        topicNames.Add(myDataReader.GetValue(0).ToString());
    }

    // close the connection 
    myCommand.Connection.Close();
    return topicNames;
}

}

当我自己返回上述方法时它工作正常并且所有值都在那里但是当我使用以下代码将此列表添加到下拉列表时它只显示“j”“a”“v”“a”这是非常奇怪的。

DropDownList1.DataSource = dt.DisplayTopicNames(); 
DropDownList1.DataBind();
4

1 回答 1

2

代替:

topicNames.Add(myDataReader.GetValue(0).ToString());

尝试这个:

topicNames.Add(myDataReader["TopicName"].ToString());
于 2013-04-13T00:14:39.963 回答