Как получить результат запроса select в виде массива
Я хочу получить результат "select vmId from tblRate where userId=2"в виде массива.
Что я уже пробовал:
выберите vmId из tblRate, где userId=2
Вам нужно создать модель с тем же атрибутом, что и имя столбца результата запроса, и назначить результат этому файлу запроса, выполняющему запрос.
например:
Запрос:
Выберите * от сотрудника
Модель C# :
служащий государственного класса{
общественные Ид_сотрудника;
общественные Имя_сотрудника;
.
.
.
Так далее...
}
а теперь назначьте объект Employee результату запроса.
Надеюсь, это будет полезно для Вас, пожалуйста, не забудьте отметить мой хороший рейтинг. :)
Мой пример кода:
List< employee> emp = новый список & lt;employee>();
var ds = новый набор данных();
ВАР соед = DACUtil.Метод getconnection();
пробовать
{
Команда sqlcommand cmd и = новая команда sqlcommand("Выберите * от сотрудника", соед);
SqlConnection con = cmd.Соединение;
против.Открыть();
использование (con)
{
SqlDataReader dr = cmd.Метода executereader();
если (dr. HasRows)
{
в то время как (dr. Read())
{
Сотрудник et = новый сотрудник();
Эт.Ид_сотрудника = Конвертировать.ToInt32(dr ["Employee_ID"]);
Эт.Имя_сотрудника = Конвертировать.Метод toString(д-р["Имя_сотрудника"]);
Эт.Employee_Phone =
Преобразовать.Метод toString(д-р["Employee_Phone"]);
Эт.Employee_Salary = Конвертировать.ToInt32(dr ["Employee_Salary"]);
Эт.Employee_Designation = Конвертировать.Метод toString(д-р["Employee_Designation"]);
Эми.Добавить(Эт);
}
}
}
}
поймать (исключение бывший) {
}
возвращение Эми;
}
Как и в приведенном ниже примере, вы должны попробовать человека.
public class ClassName { public string Col1 { get; set; } public int Col2 { get; set; } } Now you can use a loop to fill a list and ToArray if you really need an array: ClassName[] allRecords = null; string sql = @"SELECT col1,col2 FROM some table"; using (var command = new SqlCommand(sql, con)) { con.Open(); using (var reader = command.ExecuteReader()) { var list = new List<ClassName>(); while (reader.Read()) list.Add(new ClassName { Col1 = reader.GetString(0), Col2 = reader.GetInt32(1) }); allRecords = list.ToArray(); } }
Строки DataTable уже могут быть доступны в виде двумерного массива (для этого есть некоторые индексаторы), например dt.Rows[0]["column1"]
, так что вам, вероятно, не нужно его конвертировать, но...
dt.Rows.Cast<DataRow>().Select(r => r.ItemArray).ToArray();