アプリケーションに埋め込まれたPowershellを使用してデータベース値を取得します。 SQLクエリは複数の値を持つことができます。私は、私に単一の価値を返すように働くコードを得ました。しかし、私は1つ以上のレコードを取得していない(または私はそれにアクセスすることができません)。また、レコードの数を表示するために.Countを使用することもできません。SQLクエリから複数の値を返す方法
このコードは、単一のDBレコードのために働く:
$conn=New-Object System.Data.SqlClient.SQLConnection("Persist Security Info=True;Initial Catalog=;Data Source=;User ID=;Password=;MultipleActiveResultSets=True;")
$conn.Open() | out-null
$cmd1=$conn.CreateCommand()
$cmd1.CommandType = [System.Data.CommandType]::Text
$cmd1.CommandText = ("SELECT Supplier_Code FROM V_SUPPLIERINFO WHERE ACN='" + $Context.File.Field[10] + "'")
$reader = $cmd1.ExecuteReader()
#LOOP THROUGH RECORDS
for ($i=0; $i -lt $cmd1.Count; $i++){
}
$Context.File.Notes = "I have past the File Note - Count Script: " + $cmd1.Count
$reader.Read() | out-null
$Context.File.Field[11] = $reader.GetString(0)
$Context.File.Save()
return "done"
を今、私はすべての結果をループしたいと思います。理想的には、返される結果の数を取得するために$ reader.countのようなものを使用します。ただし、カウントは常に1を返します。
$ conn = New-Object System.Data.SqlClient.SQLConnection( "セキュリティ情報を永続化する;初期カタログ=;データソース=;ユーザーID =;パスワード=; MultipleActiveResultSets = True; ") $ conn.Open()|アウトヌル
$SQLRecordCount=$conn.CreateCommand()
$SQLRecordCount.CommandType = [System.Data.CommandType]::Text
$SQLRecordCount.CommandText = ("SELECT COUNT (Supplier_Code) FROM V_SUPPLIERINFO WHERE ACN='" + $Context.File.Field[10] + "'")
$reader = $SQLRecordCount.ExecuteReader()
$reader.Read() | out-null
$Context.File.Notes = "Total DB Records: " + $reader.GetString(0)
$cmd1=$conn.CreateCommand()
$cmd1.CommandType = [System.Data.CommandType]::Text
$cmd1.CommandText = ("SELECT Supplier_Code FROM V_SUPPLIERINFO WHERE ACN='" + $Context.File.Field[10] + "'")
$reader = $cmd1.ExecuteReader()
#$Context.File.Notes = "Total DB Records: " + $cmd1.length
#LOOP THROUGH RECORDS
for ($i=0; $i -lt $cmd1.Count; $i++){
}
$reader.Read() | out-null
$Context.File.Field[11] = $reader.GetString(0)
$Context.File.Save()
return "done"
しかし、それは常に私がレコードの数が見つかっ取得する方法値1
任意のアイデアを返すか、どのように私は、レコードをループすることができますか?
ありがとうございました。それから私はカウントを必要としません。 – RogerV