需要一些帮助来完成一般的MySQL select方法

时间:2016-06-14 01:53:53

标签: c# mysql

一般信息
我正忙于在C#中编写自己的MySQL数据库类。目前我正在尝试编写一个接受select查询的Select方法,并返回包含所有数据的List。我对C#还是很陌生,所以如果我对这个问题的处理方法不对,请不要犹豫告诉我。

问题
现在我的方法需要2个参数。查询和查询选择的列数。有了这些信息,我准备好我的清单并开始填写。为此,我依靠带有foreach循环的列数量。但是,我不知道如何获得正确的列名 添加到列表时。除此之外,我不确定我的方法是否会起作用。所以我希望你们想看看我的方法并帮我完成它。

方法

public List<string>[] Select(string query, int items)
{
    //Create a list to store the result
    List<string>[] resultList = new List<string>[items];

    for(int i = 0; i < items; i++)
    {
        resultList[i] = new List<string>();
    }

    //Open connection
    if (this.OpenConnection() == true)
    {
        //Create Command
        MySqlCommand cmd = new MySqlCommand(query, connection);
        //Create a data reader and Execute the command
        MySqlDataReader dataReader = cmd.ExecuteReader();

        //Read the data and store them in the list
        while (dataReader.Read())
        {
            for(int j = 0; j < items; j++)
            {
                resultList[j].Add(dataReader["columnName_here"] + "");
            }
        }

        //close Data Reader
        dataReader.Close();

        //close Connection
        this.CloseConnection();

        //return list to be displayed
        return resultList;
    }
    else
    {
        return resultList;
    }
}

1 个答案:

答案 0 :(得分:2)

MySqlDataReader派生自System.Data.Common.DbDataReader,因此您可以使用此代码获取列:

for (int c = 0; c < dataReader.FieldCount; c++)
{
    string name = dataReader.GetName(c);
    Type type = dataReader.GetFieldType(c);
}