我的代码只选择第一个条目,但我需要选择表格中的所有条目。有什么办法吗?谢谢!
public string getSiteForRotator()
{
string CommandText = "SELECT `url`, `desc`, `timer` FROM sites";
string Connect = "connection_string";
MySqlConnection myConnection = new MySqlConnection(Connect);
MySqlCommand myCommand = new MySqlCommand(CommandText, myConnection);
myConnection.Open();
MySqlDataReader MyDataReader;
MyDataReader = myCommand.ExecuteReader();
while (MyDataReader.Read())
{
string url = MyDataReader.GetString(0);
string desc = MyDataReader.GetString(1);
int timer = MyDataReader.GetInt32(2);
return url+"," + desc+"," + timer.ToString();
}
MyDataReader.Close();
myConnection.Close();
return "ERROR";
}
最佳答案
现在您的代码只返回第一条记录,因为在 while 循环中,您在第一个循环中退出该方法,并返回将来自第一条记录的数据连接在一起。如果你想返回所有记录 最简单的方法是使用 DataTable
public DataTable getSiteForRotator()
{
DataTable result = new DataTable();
string CommandText = "SELECT `url`, `desc`, `timer` FROM sites";
string Connect = "connection_string";
using(MySqlConnection myConnection = new MySqlConnection(Connect))
using(MySqlDataAdapter da = new MySqlDataAdapter(CommandText))
da.Fill(dt);
return dt;
}
在您的调用代码中,您可以检查表中是否有行,如果有则使用该行
DataTable result = getSiteForRotator();
if(result.Rows.Count == 0)
Console.WriteLine("No rows found");
else
... use the rows of the datatable ....
关于C# MySQL 选择表中的所有条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33375654/