【发布时间】:2014-09-24 01:24:47
【问题描述】:
我正在编写一些 PowerShell 代码来连接数据库,读取多行数据,然后通过 SqlDataReader 将它们返回。
我是通过“C# 方式”实现的,我将如何用 C# 编写它:
function ExecuteQuery($sql) {
$connection = new-object system.data.SqlClient.SQLConnection($ConnectionString);
$connection.Open();
$cmd = $connection.CreateCommand();
$cmd.CommandText = $sql;
$cmd.Connection = $connection
$reader = [System.Data.SqlClient.SqlDataReader]$cmd.ExecuteReader()
return $reader;
}
(此函数的调用者必须负责任地自行关闭连接。)
我预计,即使没有类型转换,我也会得到System.Data.SqlClient.SqlDataReader 的实例。这一点很重要,因为我想用Read逐行迭代,更不用说我想用方括号按列名访问数据(按ID访问太脆弱了)。
不幸的是,我得到了一个System.Data.Common.DataRecordInternal 的实例,它不包含Read 方法,也不允许我通过数组索引访问记录。
我的问题是:如何在 PowerShell 中读取和遍历多行数据?
【问题讨论】:
标签: c# powershell powershell-3.0 sqlclient