所以我有一个web api,它显示了我数据库中的值。但是我的数据库中有6行,但它不会返回第一行。
如何让它读取并返回数据库中的所有行?
cmd.CommandText = "SELECT * FROM `CustomerDb`";
cmd.CommandType = CommandType.Text;
cmd.Connection = mySqlConnection;
mySqlConnection.Open();
MySqlDataReader reader = cmd.ExecuteReader();
var listOfPlace = new List<Place>();
if (reader.Read())
{
while (reader.Read())
{
var Place = new Place();
Place.ID = Convert.ToInt32(reader["id"]);
Place.Name = reader["name"].ToString();
Place.Address = reader["address"].ToString();
Place.City = reader["city"].ToString();
Place.Category = reader["category"].ToString();
listOfPlace.Add(Place);
}
};
return listOfPlace;
答案 0 :(得分:1)
删除if块。
if (reader.Read())
{
答案 1 :(得分:0)
if语句中的第一个reader.Read()
读取第一行然后从第二行开始循环,因此您需要删除if(reader.Read())
部分以从头开始读取所有数据
while (reader.Read())
{
var Place = new Place();
Place.ID = Convert.ToInt32(reader["id"]);
Place.Name = reader["name"].ToString();
Place.Address = reader["address"].ToString();
Place.City = reader["city"].ToString();
Place.Category = reader["category"].ToString();
listOfPlace.Add(Place);
}