我一直在尝试创建一个ConnnectionString,它允许我使用PowerShell连接到我的本地数据库。以下是我的代码:
$conn = New-Object System.Data.SqlClient.SqlConnection
$conn.ConnectionString = "Server=localhost;Database=test;Uid=<username here>;Pwd=<password here>;"
$conn.Open()
$sql = "SELECT EMP_STATUS FROM test_table"
$cmd = New-Object System.Data.SqlClient.SqlCommand($sql,$conn)
$rdr = $cmd.ExecuteReader()
while($rdr.Read())
{
$test = $rdr["EMP_STATUS"].ToString()
}
Write-Output $test
然而,我没有任何关于我做错了什么并且已经把我的头发拉了一段时间。任何人都可以帮我弄清楚我在ConnectionString中做错了什么吗?
谢谢大家!!
我意识到我的第一个问题是我有MySQL数据库,而不是SQL数据库。因此,我将不得不使用不同的方法进行连接。这正是我需要你帮助的地方!到目前为止,我已经修改了我的代码如下:
[void][System.Reflection.Assembly]::LoadWithPartialName("MySql.Data")
$conn = New-Object MySql.Data.MySqlClient.MySqlConnection
$connString = "server=localhost;port=3306;uid=<username here>;pwd=<password here> ;database=test;"
$conn.ConnectionString = $connString
$conn.Open()
$sql = "SELECT EMP_STATUS FROM test_table"
$cmd = New-Object MySql.Data.MySqlClient.MySqlCommand($sql,$conn)
$rdr = $cmd.ExecuteReader()
$test = @()
while($rdr.Read())
{
$test += ($rdr["EMP_STATUS"].ToString())
}
Write-Output $test
但是,还有一些问题: 1)如何使用MySQL .NET连接工具连接到本地MySQL数据库? 2)这个PowerShell脚本应该保存在哪里? 3)我应该做出任何其他改变吗?
非常感谢
答案 0 :(得分:6)
试试这个:
$conn.ConnectionString = "Server=localhost;Database=test;User ID=<username here>;Password=<password here>;"
然后$ test只给你在select中找到的最后一个值! 要让$ test包含select中的所有值,请更改代码,如下所示:
$conn = New-Object System.Data.SqlClient.SqlConnection
$conn.ConnectionString = "Server=localhost;Database=test;User ID=<username here>;Password=<password here>;"
$conn.Open()
$sql = "SELECT EMP_STATUS FROM test_table"
$cmd = New-Object System.Data.SqlClient.SqlCommand($sql,$conn)
$rdr = $cmd.ExecuteReader()
$test = @()
while($rdr.Read())
{
$test += ($rdr["EMP_STATUS"].ToString())
}
Write-Output $test