例如,我有一个名为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());
MessageBox.Show(DbManager.GetOnline());
这应该以最快的方式为您提供所需的字符串列表。reader.GetString(0)表示您从索引为0的列(即第一个索引)中获取一个字符串值。
reader.GetString(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;