gpt4 book ai didi

c# - 如何将查询结果加载到 IList

转载 作者:行者123 更新时间:2023-11-30 20:16:54 27 4
gpt4 key购买 nike

我有一个 IList<T>

IList<Student> studsList = new IList<Student>(); 

如何加载nameage从这个查询到我的 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,包括通过索引器 ([])、GetValueGetValues或类型化访问方法(GetStringGetInt32 等)。

或者更简单 - 使用像 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 });

(您可能需要使用 $region:region,具体取决于您的 ADO.NET 提供商)

关于c# - 如何将查询结果加载到 IList<T>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47614400/

27 4 0