Показать полную графическую версию : [решено] Изменение строки таблицы в базе данных MySQL при помощи Windows PowerShell
Добрый день!
Я еще пока новичок. Помогите, пожалуйста, чем сможете...
Задача: Создать скрипт, выполнение которого приводит к изменению записи таблицы в базе данных MySQL на удаленном сервере.
Синтаксис подключения к MySQL я вроде как нашел:
Server=myServerAddress;Port=1234;Database=myDataBase;Uid=myUsername;Pwd=myPassword;
А как теперь поменять запись?
Есть таблица Shipowner базы данных SeamansBook. Необходимо будет менять данные только у элемета с itemId = 1 (т.е. самая первая запись).
Попробуйте:
$connectionString = "myServerAddress;Port=1234;Database=myDataBase;Uid=myUsername;Pwd=myPassword;"
$connection = New-Object MySql.Data.MySqlClient.MySqlConnection
$connection.ConnectionString = $connectionString
$connection.Open()
$sql = New-Object MySql.Data.MySqlClient.MySqlCommand
$sql.Connection = $connection
$sql.CommandText = "update Shipowner set ColumnName = "New VALUE" where itemId = 1"
$sql.ExecuteNonQuery()
Спасибо!
Поезд тронулся =)
Только пришлось сначала подключить MySqlData.dll
Также пришлось вынести значения в отдельные переменные
Add-Type -Path 'C:\Program Files (x86)\MySQL\MySQL Connector Net 6.4.5\Assemblies\v2.0\MySql.Data.dll'
$connectionString = "Server=myServerAddress;Port=3306;Database=SeamansBook;Uid=myUsername;Pwd=myPassword;"
$connection = New-Object MySql.Data.MySqlClient.MySqlConnection
$connection.ConnectionString = $connectionString
$connection.Open()
$sql = New-Object MySql.Data.MySqlClient.MySqlCommand
$sql.Connection = $connection
$RusFull = 'Gazprom'
$ID = '1'
$sql.CommandText = "UPDATE Shipowner SET shipownerRusFull = $RusFull WHERE itemId = $ID"
$sql.ExecuteNonQuery()
Правда все равно ругается и с этим пока сам разобраться не смог:
Исключение при вызове "ExecuteNonQuery" с "0" аргументами: "Unknown column 'Gazprom' in 'field list'"
C:\SeamansBook.ps1:13 знак:21
+ $sql.ExecuteNonQuery <<<< ()
+ CategoryInfo : NotSpecified: (:) [], MethodInvocationException
+ FullyQualifiedErrorId : DotNetMethodException
Я так понял, что он пытается найти поле Gazprom, а не вписать значение Gazprom в поле shipownerRusFull...
А вот почему - еще не знаю...
Если взять в кавычки?
"UPDATE Shipowner SET shipownerRusFull = ""$RusFull"" WHERE itemId = ""$ID"""
Спасибо огромное!
Запахало!!!
А не подскажете, заодно, как мне в PowerShell прописать все файлы с разрешением?
Т.е. в командной строке *.txt , а в PowerShell?
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.