ローカル サーバーにある MySQL データベースにアクセスする Visual Studio 2010 で ASP.NET プロジェクトを開発しようとしています。
Web Platform Installer を使用して MySQL 5.1 と NET Connector for MySQL をインストールしました。また、.NET 4.5 がインストールされた Microsoft Visual Studio 2010 Ultimate (バージョン 10 - SP1) を使用しています。プロジェクトに MySQL.Data、MySQL.Web、および MySQL.Data.Entity への参照を追加しました。
私は次の問題に直面しています。
ASPX ページで MySQL オブジェクトをリンクしようとすると、MySQL ライブラリにアクセスできません。..MySQL..と入力しようとすると、インテリセンスはそれを認識しません。MySQL ライブラリはプロジェクトにまったく追加されていないようですが、参照で確認できます。このため、ASPX ページで MySQL オブジェクトを作成できません。
共通コードの一部をクラスに入れたいと思っていました (ComCode.vb など)。その ComCode.vb ファイルを App_Code フォルダー内に配置する必要があると言われました。デフォルトでは App_Code フォルダーが表示されないため、手動でフォルダーを作成します。([追加] > [ASP.NET フォルダーの追加] メニューにも App_Code フォルダーが表示されません)。フォルダーには特別なアイコンがあり、プロジェクトがそれを拾ったと推測しています。その中に ComCode.vb クラス ファイルを配置すると、インテリセンスが機能しません。これは、フォーマットされていない生のテキスト ファイルのように扱われます。ネットで検索したところ、クラス ファイルの Build Action を Content から Compile に変更する必要があることがわかりました。それはうまくいきます。しかし、私に新しい問題を引き起こします。
MySQL コードを ASPX ファイルから Class ファイルに移行しました。いくつかの奇妙な理由により、Visual Studio は MySQL オブジェクトを認識します。これで、私のプロジェクトが MySQL ライブラリへの参照を持っていることを覚えています。ただし、オブジェクトが ASPX コードにある場合は、オブジェクトを認識しません。名前空間をインポートしようとしましたが、ライブラリを認識しないため、インポートも機能しません。
いずれにせよ、MySQL はクラス ファイルで動作します。ASPX ページでクラスの新しいインスタンスを作成し、関数を呼び出して MySQL データベースに接続して開くことができます。しかし今、新たな問題が発生しています。Web ページが IIS Express 7.5 サーバーで実行されている場合、次のエラーが表示されます。
タイプ 'MySqlConnection' が定義されていません。
このエラーは次の行に表示されます: Public objConnection As MySqlConnection
私の ComCode.vb のコード:
Imports MySql.Data.MySqlClient
Imports MySql.Data
Public Class farazdb
Public objConnection As MySqlConnection
Public Function Connect() As Boolean
Dim conStr As String
Dim config As NameValueCollection = ConfigurationManager.GetSection("appSettings")
conStr = config("ODBCConnection")
Try
objConnection = New MySqlConnection(conStr)
objConnection.Open()
Catch ex As MySqlException
Return ex.Message.ToString()
End Try
Return True
End Function
End Class
Web.config に次の行を追加しました。
<appSettings >
<add key="ODBCConnection" value="Server=localhost; Database=mydb; uid=xxxx; password=xxxx;"/>
</appSettings>
ここで何が起こっているのか本当にわかりません。何をすべきか?どんな助けでも大歓迎です。
よろしく
ファラズ