記事の個別表示(修正可)
タイトル  ADO.NET Driver を使う
本文  
 目的を再確認しておこう。Apacheの環境下で、asp.netを使う事だ。そのデータベースに、SQL Server 2008 R2 を新たにインストールしたら、Apacheが起動しないなどの失敗をした。そこで、MySQLを試す事になる。

 昨日のダウンロード先から、ADO.NET Driver for MySQLをダウンロードする。これも再確認だが、会員登録する必要はない。ダウンロードしたファイルは、難なくインストールが完了する。さっそく、動作を確認するため、MySQLにコマンドプロンプトでデータベースを作成する。
> create database vbnet; として見た。
> use vbnet;
> create table books(id int primary key, title varchar(40) not null, ...);

 てな具合で、データベースを作る。データは、まだ空だ。

 Web Developer を起動して、ソリューションエクスプローラを右クリック、参照の追加、.NETタブ、MySql.Dataを選択してOKをクリック、これでMySql.Data.Dllが有効になる。

 コードを書く。まず、

Imports MySql.Data.MySqlClient
 コマンドボタンを適当に置き、そこにコードを書く。例が有ったので、それを利用する。まずは、読み込み。

        Dim Connection As New MySql.Data.MySqlClient.MySqlConnection
        Dim Command As MySql.Data.MySqlClient.MySqlCommand
        Dim DataReader As MySql.Data.MySqlClient.MySqlDataReader

        '接続文字列を設定
        Connection.ConnectionString = "Database=vbnet;Data Source=localhost;User Id=root;Password=yourpassword"

        'オープン
        Connection.Open()

        'コマンド作成
        Command = Connection.CreateCommand

        'SQL作成
        Command.CommandText = "SELECT id, title, author, publisher, price, pub_date FROM books;"

        'データリーダーにデータ取得
        DataReader = Command.ExecuteReader

        'データを全件出力
        Do Until Not DataReader.Read
            Label7.Text = DataReader.Item("id").ToString
            Label8.Text = DataReader.Item("title").ToString
            Label9.Text = DataReader.Item("author").ToString
            Label10.Text = DataReader.Item("publisher").ToString
            Label11.Text = DataReader.Item("price").ToString
            Label12.Text = DataReader.Item("pub_date").ToString
        Loop

        '破棄
        DataReader.Close()
        Command.Dispose()
        Connection.Close()
        Connection.Dispose()

 次は、書き込み
        Dim Connection As New MySqlConnection
        Dim Command As MySqlCommand
        Dim DataReader As MySqlDataReader
        Dim dt_id As New ArrayList
        Dim dt_title As New ArrayList
        Dim dt_author As New ArrayList
        Dim dt_publisher As New ArrayList
        Dim dt_price As New ArrayList
        Dim dt_pub_date As New ArrayList
        Dim x1 As String

        '接続文字列を設定
        Connection.ConnectionString = "Database=vbnet;Data Source=localhost;User Id=root;Password=yourpassword"

        'オープン
        Connection.Open()

        'コマンド作成
        Command = Connection.CreateCommand

        x1 = "insert into books values ("
        x1 = x1 & Val(TextBox1.Text) & ", '" & TextBox2.Text & "','" & TextBox3.Text & "','" & TextBox4.Text & "'," & TextBox5.Text & ",'" & TextBox6.Text & "');"

        'SQL作成
        Command.CommandText = x1

        'データリーダーにデータ取得
        DataReader = Command.ExecuteReader

        '破棄
        DataReader.Close()
        Command.Dispose()
        Connection.Close()
        Connection.Dispose()

 一応、動作は確認できた。

 次は、これをApache環境下にコピーする。実行だ。所が、これが、うまく行かない。要は、始めのImports MySql.Data.MySqlClientが、効いていないのだ。

 ならば、記述をImportsを使わずに、文内に書き込む。だが、状態は同じ。

 残るは、コンパイルしては、どうかと言う発想になる。明日は、この辺の事情を確認したい。
 MySqlは、一応動作した。おそらく、まだ試していないが、Visual basic 2010 でも同様に使えるのだろう。そこは収穫だ。
...51525354555657585960...