2016-11-09 6 views
3

私は、WindowsからOS X上で実行されている.Net Coreに移植している古いPowerShellスクリプトを持っています。このスクリプトはMySQL DBに接続し、データを読み書きします。.Net CoreからMySqlDataAdapterが欠落しているようです。

Windowsで実行したときに、MySqlDataAdapterを使用してデータを格納できました。しかし、これは新しい公式のMySQL DBプロバイダ(ここではプロバイダへのリンク:here)を使用しても可能ではないようです。 PowerShellは、バージョン5月v6.0.0-alpha.12です。ここ

は、コードのカットダウンの例である:それは返すエラーがある

$command = New-Object MySql.Data.MySqlClient.MySqlCommand($query, $connection) 
$dataAdapter = New-Object MySql.Data.MySqlClient.MySqlDataAdapter($command) 
$dataAdapter.SelectCommand.CommandTimeout = 0 
$dataSet = New-Object System.Data.DataSet 

Try { 
    $dataAdapter.Fill($dataSet) 
    $dataTable = new-object "System.Data.DataTable" 
    $dataTable = $dataSet.Tables[0] 
    $connection.Close() 
} Catch [exception] { 
    $dataAdapter.Dispose() 
    $command.Dispose() 
    $dataAdapter = $null 
    return $Error 
} 

New-Object : Cannot find type [MySql.Data.MySqlClient.MySqlDataAdapter]: verify that the assembly containing this type is loaded. 

代替の人を知っています/オフラインで使用するためのデータを格納するためのより良い方法は?それとも、私は何かが足りないのですか?

+0

''何DataTable'が存在しないため、MySqlAdapter'は、.NETのコア1のために存在することはできません。 .NET Core 2の場合、まだ誰もサポートを追加していないようです(https://forums.mysql.com/read.php?38,657477,658168#msg-658168を参照)。 – Dejan

答えて

0

NuGetパッケージとして提供されているMySql.Dataの最新バージョンを確認してください:MySql.Data 7.0.6-IR31

説明には.NETStandard 1.6がサポートされているため、.NETコアで利用できるはずです。

+0

- まだそのパッケージを試してみました問題を解決しませんでした。 – Jeremy

0

dotnetcore2.0がADOをサポートしているので、mysqlをコンパイルして動作させることができます。私はオラクルにリリースやベータ版を待つのがうんざりしていたので、私は自分の手で問題を取り上げ、コードと状況を見ました。コードを読んで約2時間か3時間で、apiと純粋なダム運を少し読んで、netcore2.0に対してmysql 8.0.3をコンパイルできました。プロジェクトファイルを手動でnetcore 2.0に変更し、コンパイラ指令を変更するだけでした。最終的には、1行のコードを追加する必要はありませんでした。私は多くの行を削除し、いくつかのファイルをコピーしなければならなかった。最終結果は、mysqldataadapterとコマンドビルダーでコンパイルされたmysql 8.0.3です。私はすでにいくつかの私のアプリでそれをテストしていて、少なくともWindowsではうまく動作しているようです。/私は接続ビルダーとデータアダプタを使って、データセットに更新や挿入、削除をしない小さなプログラムを移植しました。 。

私のバージョンはまだほとんどテストされておらず、ほとんどのテストは進行中です。私は、これが他の人にそれを修正しようと奨励することを願っています。そうでなければ、Oracleが直腸頭蓋反転を解決し、適切なリリースを行うまで基本的なテスト/使用のために十分にうまく動作していると確信した後、ソースをgithubに投稿することができます。

しかし、あなたが自分でコンパイルすることができれば、間違いなく可能です。

UPDATE: はここに私の作業コードです: https://github.com/amjtech/MySQL.Data

関連する問題