Microsoft Data Application BlockからMySQLに接続する
-
03-07-2019 - |
質問
lデータアクセスの大部分でデータアプリケーションブロックを使用しています。具体的には、SqlHelperクラスを使用してExecuteReader、ExecuteNonQueryなどのメソッドを呼び出しています。各データベース呼び出しで接続文字列を渡します。
これを変更して、MySQLデータベースへの接続を有効にするにはどうすればよいですか。
解決
エンタープライズライブラリがインストールされており、SQL Serverデータベースへの接続方法を既に知っている場合、MySQLデータベースへの接続は難しくありません。
それを行う1つの方法は、ODBCを使用することです。これは私がやったことです:
- MySQL.comにアクセスして、最新のMySQL ODBCコネクタをダウンロードします。これを書いているときは5.1.5です。 64ビットVistaを使用しているため、64ビットバージョンを使用しました。
- ODBCコネクタをインストールします。インストーラーなしのバージョンを使用することにしました。解凍して、管理者のコマンドプロンプトでInstall.batを実行しました。 MSIバージョンはおそらく正常に動作しますが、3.51コネクタをインストールしたときにこの方法で戻しました。
- ODBCコントロールパネルを開き、[ドライバ]タブをチェックして、インストールを確認します。 MySQL ODBC 5.1 Driverがそこにリストされているはずです。既にお持ちの場合は、旧バージョンの3.51と平和的に共存することもできます。さらに、.NETコネクタもインストールされている場合、.NETコネクタと平和的に共存します。
- この時点で、SQL Serverデータベースに接続するために行ったことを実行します。知っておく必要があるのは、接続文字列に何を使用するかだけです。
- これが私の外観です:
- もちろん、「名前」を設定できます;好きなものに。
- これが唯一のデータベースである場合、次のようにdefaultDatabaseとして設定できます。
- いつものようにコード内のデータにアクセスします!プレーンテキストのSQLの例を次に示します。
public List<Contact> Contact_SelectAll() { List<Contact> contactList = new List<Contact>(); Database db = DatabaseFactory.CreateDatabase("MySqlDatabaseTest"); DbCommand dbCommand = db.GetSqlStringCommand("select * from Contact"); using (IDataReader dataReader = db.ExecuteReader(dbCommand)) { while (dataReader.Read()) { Contact contact = new Contact(); contact.ID = (int) dataReader["ContactID"]; client.FirstName = dataReader["ContactFName"].ToString(); client.LastName = dataReader["ContactLName"].ToString(); clientList.Add(client); } } return clientList; }
別の方法は、MySqlプロバイダーをビルドして使用することです。 この男がやった。 これらの手順を適応させることにより、これを行う方法を学びました。 Accessへの接続用。 ああ、ここにいくつかのMySql接続文字列のサンプルがあります。
所属していません StackOverflow