我有一个 IList<T>
IList<Student> studsList = new IList<Student>();
Run Code Online (Sandbox Code Playgroud)
如何从这个查询加载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?
}
}
Run Code Online (Sandbox Code Playgroud)
如果你command.ExecuteNonQuery();,你说"我不期待结果".如果要查看结果,则需要使用ExecuteReader,它将返回一个IDataReaderAPI,允许您使用向前循环行.Read().然后,每行可以访问一系列的API来访问列,包括通过索引([]),或GetValue或GetValues或类型的访问方法(GetString,GetInt32等).
或者更简单 - 使用像小巧玲珑的工具!
var students = connection.Query<Student>(query);
Run Code Online (Sandbox Code Playgroud)
这涉及:
T(Student在这种情况下)对于参数化示例:
var region = "North";
var students = connection.Query<Student>(
"select * from Students where Region=@region", new { region });
Run Code Online (Sandbox Code Playgroud)
(您可能需要使用$region或:region取决于您的ADO.NET提供程序)