我有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?
}
}
答案 0 :(得分:6)
如果您command.ExecuteNonQuery();
,您说的是&#34;我不期待结果&#34;。如果您想查看结果,则需要使用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 Region=@region", new { region });
(根据您的ADO.NET提供商,您可能需要使用$region
或:region
)