如何加载查询结果的IList的<T>
我有一个IList<T>如何加载查询结果的IList的<T>
IList<Student> studsList = new IList<Student>(); 如何加载该查询name和age属性来我studsList?
using(OracleCommand command = new OracleCommand(querySQL, connection)) {
connection.Open();
string query = "SELECT name, age FROM Student";
using(OracleCommand command = new OracleCommand(querySQL, connection)) {
using(OracleDataAdapter oracleDataAdapter = new OracleDataAdapter()) {
oracleDataAdapter.SelectCommand = command;
command.ExecuteNonQuery();
//What to do here?
}
}
回答:
如果你command.ExecuteNonQuery();,你是在说“我不期待结果”。如果您想查看结果,则需要使用ExecuteReader,它将返回一个IDataReader API,允许您使用.Read()向前循环行。然后,每行可以访问一系列访问列的API,包括通过索引器([])或GetValue或GetValues或键入的访问方法(GetString,GetInt32等)。
或者更简单 - 使用像dapper这样的工具!
var students = connection.Query<Student>(query); 这个处理与:
- 连接寿命(开口等)
- 创建命令
- 参数(在该示例中没有示出,但很容易)
- 执行指令
- 处理读取器
- 解析每一行的内容到
T(Student在这种情况下) - 正确
收盘都记录下来对于参数例如:
var region = "North"; var students = connection.Query<Student>(
"select * from Students where [email protected]", new { region });
(您可能需要使用$region或:region取决于您的ADO.NET提供商)
以上是 如何加载查询结果的IList的<T> 的全部内容, 来源链接: utcz.com/qa/259127.html

