1

昨日、csvにエクスポートするために(何か愚かなことをしない限り)完全に機能する方法があります。ただし、今日はこのエラーが発生し続けます。

"1" 個の引数を指定して "Fill" を呼び出し中に例外が発生しました: "ExecuteReader: CommandText プロパティが初期化されていません"

  • $rowCount=$SqlAdapter.Fill($dt)
  • ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    • CategoryInfo : NotSpecified: (:) []、MethodInvocationException
    • FullyQualifiedErrorId : InvalidOperationException

そして、これは私の構文です:

$server = "serverinstance"
$database = "databaseinstance"
$savefile = "C:\Test\sqlresults.csv"
$SelectQuery = "Select Top 1 * from madeuptable"
$connectionTemplate = "Data Source={0};Integrated Security=SSPI;Initial Catalog={1};"
$connectionString = [string]::Format($connectionTemplate, $server, $database)
$connection=New-Object System.Data.SqlClient.SqlConnection($connectionString)

$cmd=$connection.CreateCommand()
$cmd.CommandText = $SelectQuery 

$SqlAdapter = New-Object System.Data.SqlClient.SqlDataAdapter($cmd)
$dt = New-Object System.Data.DataTable
$rowCount=$SqlAdapter.Fill($dt)

if ($rowCount -gt 0) { $dt| Export-Csv $savefile -encoding UTF8 -NoTypeInformation }
$connection.Close()
4

2 に答える 2

0

$server 変数と $database 変数を確認します。自分の SQL サーバーに対してスクリプトを実行したところ、問題なく動作しました。

編集

これが私が実行したものです:

$server = "FAR-L2484\HOLDER_SQL"  ## Hostname\InstanceID
$database = "MASTER"
$savefile = "C:\Test\sqlresults.csv"
$SelectQuery = "SELECT * FROM information_schema.tables"
$connectionTemplate = "Data Source={0};Integrated Security=SSPI;Initial Catalog={1};"
$connectionString = [string]::Format($connectionTemplate, $server, $database)
$connection=New-Object System.Data.SqlClient.SqlConnection($connectionString)

$cmd=$connection.CreateCommand()
$cmd.CommandText = $SelectQuery 

$SqlAdapter = New-Object System.Data.SqlClient.SqlDataAdapter($cmd)
$dt = New-Object System.Data.DataTable
$rowCount=$SqlAdapter.Fill($dt)

$dt| Export-Csv $savefile -encoding UTF8 -NoTypeInformation
$connection.Close()

これは私が C:\test\sqlresults.csv で得たものです

"TABLE_CATALOG","TABLE_SCHEMA","TABLE_NAME","TABLE_TYPE"
"master","dbo","spt_fallback_db","BASE TABLE"
"master","dbo","spt_fallback_dev","BASE TABLE"
"master","dbo","spt_fallback_usg","BASE TABLE"
"master","dbo","spt_values","VIEW"
"master","dbo","spt_monitor","BASE TABLE"
"master","dbo","MSreplication_options","BASE TABLE"
于 2016-02-16T14:15:23.667 に答える