DataReader 不是return数据而是行数

DataReader does not return data but the number of rows

我有这个代码

string query = "SELECT * FROM table;"

try
{
   using (SqlConnection connection = new SqlConnection(this.ConnectionString))
   {
      connection.Open();

      using (SqlCommand cmd = new SqlCommand(query, connection))
      {
         SqlDataReader reader = cmd.ExecuteReader();
      }

      connection.Close();
   }
}

在reader中我收到了table中的行数,但没有数据。我在哪里迷路了?

调用 ExecuteReader 后,您需要遍历它,读取每一行:

while(reader.Read())
{
  // Process the row...
}

此外,最好将 reader 放入 using 块中:

using(SqlDataReader reader = cmd.ExecuteReader())
{
  while(reader.Read())
  {
    // Process the row
  }
}

您需要阅读 reader

https://docs.microsoft.com/en-us/dotnet/framework/data/adonet/retrieving-data-using-a-datareader#:~:text=To%20retrieve%20data%20using%20a,rows%20from%20a%20data%20source.

SqlDataReader reader = command.ExecuteReader();
if (reader.HasRows)
{
    while (reader.Read())
    {
           // 
    }
}