我正在尝试编写一个方法,该方法返回一个列表,其中包含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;
}
}
这可能吗?我是否需要为每张桌子制作新方法? 或者我应该返回一个对象列表而不是字符串?
我真的在这里有一个脑筋,所以任何帮助都会受到赞赏。
答案 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。