admin

从SELECT查询返回多个值

sql

例如,我有一个名为dbuser的数据库:

username: teste
password: xxxx
isonline: 1

username: teste2
password: xxxx
isonline: 1

我以为这个查询:

"SELECT username FROM dbuser  WHERE (isonline ='1')"

会同时返回teste和teste2,但是当我在MessageBox中询问结果时(例如,teste和teste2都在线),它仅显示teste,但是当我关闭teste连接时,它将在MessageBox中出现teste2。我猜它只是将第一行返回给我,所以我如何获得所有值?

这是方法代码:

public static string GetOnline() 
{ 
  string listaOnline; 
  listaOnline = ExecuteQuery("SELECT * username FROM dbuser WHERE (isonline ='1')").ToString();
  return listaOnline;
}

我将其显示为 MessageBox.Show(DbManager.GetOnline());


阅读 253

收藏
2021-06-07

共1个答案

admin

这应该以最快的方式为您提供所需的字符串列表。reader.GetString(0)表示您从索引为0的列(即第一个索引)中获取一个字符串值。

List<string> result = new List<string>();

using (SqlConnection connection = new SqlConnection(databaseConnectionString))
{
  connection.Open();
  using (SqlCommand command = new SqlCommand(query, connection))
  {
    command.CommandType = CommandType.Text;
    using (SqlDataReader reader = command.ExecuteReader())
    {
      while (reader.Read())
      {
        result.Add(reader.GetString(0));
      }

      reader.Close();
    }
    command.Cancel();
  }
}

return result;
2021-06-07