一般信息
我正忙于在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;
}
}
答案 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);
}