c# - 用于多表的MySQL连接器通用SELECT查询方法

时间:2015-05-28 19:48:36

标签: c# mysql mysql-connector

我正在尝试编写一个方法,该方法返回一个列表,其中包含select查询返回的每一行。但我能找到的任何东西都基于一张桌子。

这就是我正在尝试的:

public List<string> Select(string querystring)
    {
        string query = "SELECT " + querystring;

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

        if (this.OpenConnection())
        {
            MySqlCommand cmd = new MySqlCommand(query, connection);
            MySqlDataReader dataReader = cmd.ExecuteReader();

            while (dataReader.Read())
            {
                // in here I don't want a to "hard code" every column
                results.Add( "returned data" );
            }

            dataReader.Close();

            this.CloseConnection();

            return results;
        }
        else
        {
            return results;
        }
    }

这可能吗?我是否需要为每张桌子制作新方法? 或者我应该返回一个对象列表而不是字符串?

我真的在这里有一个脑筋,所以任何帮助都会受到赞赏。

2 个答案:

答案 0 :(得分:1)

正如我在评论中所说:

  

我不确定你要做的是什么......看起来你希望将行和列(你的数据集)放入行(你的字符串列表)。您打算如何使用这些数据?试图以你正在尝试的方式使用它是不会非常有用的。您可以按索引引用数据读取器列,但我再也不清楚您希望实现的目标。

可以但是通过这样做:

while (reader.Read()) 
{ 
    // for loop with a maximum iteration of the number of columns in the reader.
    for (int i=0;i<reader.FieldCount;i++)
    { 
        results.Add(reader[i].ToString()); 
    } 
} 

但同样,我认为这不会以可用的方式为您提供数据。

答案 1 :(得分:0)

我建议您查看Dapper.NET或EF6或nHibernate。