我已将本地数据库中的一些数据添加到List中,现在我需要在下拉列表中显示此List所具有的值。该列表包含以下数据:
方法:
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;
}
}
当我自己返回上面的方法时它工作正常并且所有值都在那里但是当我使用下面的代码将此List添加到下拉列表时它只显示“j”“a”“v”“a”这很奇怪。
DropDownList1.DataSource = dt.DisplayTopicNames();
DropDownList1.DataBind();
答案 0 :(得分:2)
而不是:
topicNames.Add(myDataReader.GetValue(0).ToString());
试试这个:
topicNames.Add(myDataReader["TopicName"].ToString());