Друзья,
У меня есть динамический SQL-запрос, который я хотел бы выполнить и вернуть список.
Из большинства моих поисков в интернете по goole я обнаружил, что тип списка должен быть известен, чтобы преобразовать sqldatareader в список.
Как я могу это сделать, когда я не знаю, какой запрос будет выполнен.
Execute(String query)
{
SqlConnection con=new SqlConnection(connection);//connection from elsewhere
SqlCommand cmd = new SqlCommand(query);
cmd.connection=con;
con.Open();
SqlDataReader result=cmd.ExecuteReader();
//How to convert result to a list when i do not know the table structure
}
Теперь я хочу преобразовать результат в список.
Однако я не знаю деталей таблицы, над которой работает запрос. Запрос может отличаться, он может запрашивать любую таблицу.
Таким образом, в этих условиях, как я могу преобразовать результат в список. Возможно ли это?
Это оставляет меня с одним простым вопросом: если я не знаю подробностей таблицы, то какие будут записи в списке или список чего?
Чтобы ответить на этот вопрос, я задаю себе другой вопрос: возможно ли иметь список, в котором каждая запись списка будет соответствовать одной строке результата SqlDataReader?
Так что я могу использовать List x = result.Select (). ToList (), но я тоже не хочу использовать это.
Я хочу, чтобы каждая запись списка отображалась на каждую строку результата и в то же время состояла из атомарных типов данных, составляющих строку.
Например, Выберите имя студента, студента от студента;
Это вернет мне результат SqlDataReader, и я хочу создать список, тип которого содержит строку и целое число, а затем заполнить список строками результата.
Когда запрос меняется на , выберите отметки, тему, оценку из отметок, где studentid = 1432 , тогда я хочу создать список, тип которого содержит int, string, char, а затем заполнить список строками результата.
Есть ли способ сделать это?
PS Пользователь знает, как выбирать значения, если я возвращаю список, как описано выше, поскольку он создал запрос и знает, сколько столбцов ожидать.