第一种查询数据存储到DataSet中:
$sqlServer = "localhost"
$database = "DVRS"
$saPassword = "Tyco0101"
$sqlConnection = New-Object System.Data.SqlClient.SqlConnection
$cnnString = "Server=$sqlServer;Database=$database;User ID=sa;Password=$saPassword;Trusted_Connection=False"
$sqlConnection.ConnectionString = $cnnString
$sqlCmd = New-Object System.Data.SqlClient.SqlCommand
$sqlCmd.Connection = $sqlConnection
$sqlCmd.Connection.Open()
$sqlCmd.CommandText = "SELECT Top 10 GETDATE() FROM [DVRS].[dbo].[calllog]"
$adapter = New-Object System.Data.SqlClient.SqlDataAdapter $sqlCmd
$dataset = New-Object System.Data.DataSet
$adapter.Fill($dataSet)
$sqlConnection.Close()
for ($i=0; $i -lt $dataSet.Tables[0].Rows.Count; $i++)
{
$data= $dataSet.Tables[0].Rows[$i][0]
}
第二种是使用Scalar:
# 创建数据库连接串
# Data Source 表示要连接的数据库, tcp表示tcp协议, (local)表示连接本地数据库
# Integrated Security 表示连接数据库的认证方法, 我使用的是推荐的Windows Account Credential.
#$SqlConn = [System.Data.SqlClient.SqlConnection] "Data Source=tcp:(local);Integrated Security=SSPI;"
#连接local的ID为sa 密码为Tyco0101的数据库
$SqlConn = [System.Data.SqlClient.SqlConnection] "Data Source=tcp:(local);User ID=sa;Password=Tyco0101;Trusted_Connection=False"
# 打开数据库连接
$SqlConn.Open();
# 确认状态
$SqlConn.State;
# 切换到数据库 tma
$SqlConn.ChangeDatabase('DVRS');
# 确认切换到指定的数据库
$SqlConn.Database;
# 创建一个绑定到此连接的SqlCommand对象, 你可以简单想象SqlCommand就是你平时用的SQL企业管理器或任何可以执行SQL语句的工具
$CC = $SqlConn.CreateCommand();
# 设置我们要进行的查询
$CC.CommandText = "SELECT Top 10 GETDATE() FROM [DVRS].[dbo].[calllog]"
# 因为这是一个标量结果, 因此调用ExecuteScalar即可
#$CC.ExecuteScalar();
#
$adapter = New-Object System.Data.SqlClient.SqlDataAdapter $CC
$dataset = New-Object System.Data.DataSet
$adapter.Fill($dataSet)
for ($i=0; $i -lt $dataSet.Tables[0].Rows.Count; $i++)
{
$data= $dataSet.Tables[0].Rows[$i][0]
}