C# MySQL 选择表中的所有条目

标签 c# mysql

我的代码只选择第一个条目,但我需要选择表格中的所有条目。有什么办法吗?谢谢!

 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/

相关文章:

php - MySQL PHP 'Filter' 用于服务

c# - 委托(delegate)可以将泛型作为参数吗

php - 为什么我的多维数组没有正确初始化和/或返回?

php - MySql 数据库的第二行

php - foreach 循环在 php 代码中不起作用

Mysql 查询——选择表中排名最高/排序的主题(连接)

c# - 你如何处理 .net 中的 'Ambiguous Time'?

c# - 在 Validation Context 中获取子属性中的父对象属性值

c# - String Unlimited 仍然限制为 4000 个字符?

c# - 解构 C# 元组