質問

lデータアクセスの大部分でデータアプリケーションブロックを使用しています。具体的には、SqlHelperクラスを使用してExecuteReader、ExecuteNonQueryなどのメソッドを呼び出しています。各データベース呼び出しで接続文字列を渡します。

これを変更して、MySQLデータベースへの接続を有効にするにはどうすればよいですか。

役に立ちましたか?

解決

エンタープライズライブラリがインストールされており、SQL Serverデータベースへの接続方法を既に知っている場合、MySQLデータベースへの接続は難しくありません。

それを行う1つの方法は、ODBCを使用することです。これは私がやったことです:

  1. MySQL.comにアクセスして、最新のMySQL ODBCコネクタをダウンロードします。これを書いているときは5.1.5です。 64ビットVistaを使用しているため、64ビットバージョンを使用しました。
  2. ODBCコネクタをインストールします。インストーラーなしのバージョンを使用することにしました。解凍して、管理者のコマンドプロンプトでInstall.batを実行しました。 MSIバージョンはおそらく正常に動作しますが、3.51コネクタをインストールしたときにこの方法で戻しました。
  3. ODBCコントロールパネルを開き、[ドライバ]タブをチェックして、インストールを確認します。 MySQL ODBC 5.1 Driverがそこにリストされているはずです。既にお持ちの場合は、旧バージョンの3.51と平和的に共存することもできます。さらに、.NETコネクタもインストールされている場合、.NETコネクタと平和的に共存します。
  4. この時点で、SQL Serverデータベースに接続するために行ったことを実行します。知っておく必要があるのは、接続文字列に何を使用するかだけです。
  5. これが私の外観です:
  6. もちろん、「名前」を設定できます;好きなものに。
  7. これが唯一のデータベースである場合、次のようにdefaultDatabaseとして設定できます。
  8. いつものようにコード内のデータにアクセスします!プレーンテキストの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接続文字列のサンプルがあります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top