如何加载查询结果的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