- PR -

C#からMySQLにアクセス

1
投稿者投稿内容
techbits
会議室デビュー日: 2006/02/02
投稿数: 10
投稿日時: 2006-03-16 11:03
.NET(具体的にはC#)でMySQLにアクセスするクライアントソフトを作成しています。
調べたところ、いくつかプロバイダソフトがあることがわかりましたが、お勧めなどがありましたら、お教え願いたいと思います。
希望用件としては、
・ライセンス的にフリー、若しくは低額のライセンス料で使用できる
・できればSQLServerのようにVisualStudio.NETでGUIを使って開発できる
・安定しているもの
上記のものを探しています。
良いものがありましたら、お教えください。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-03-16 11:27
MySQL Connector/Net

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
techbits
会議室デビュー日: 2006/02/02
投稿数: 10
投稿日時: 2006-03-17 13:05
じゃんぬねっとさん、ご返答ありがとうございます。
MySQL Connector/Net は一番初めに試したのですが
エラーが出て使えなかったので、あきらめてました。
エラーの原因は、参照設定でMySql.Dataを追加するのを忘れていたからでした。
ソリューションエクスプローラーの参照設定にDLLを設定し使えました。

追加質問になってしまうのですが
この方法はサーバエクスプローラーでは、MySQLサーバは参照できないので
ウィザードなどは使用できず、プロパティを手動で設定して、MySQLと接続すると言う形になるんでしょうか?
ひろれい
ぬし
会議室デビュー日: 2006/03/02
投稿数: 486
お住まい・勤務地: 万博開催地
投稿日時: 2006-03-17 14:28
私は以前、VB.NET でMySQL を使っていましたので、そのサンプルを。
(VB.NET → C# への書き換えはお願いします(^^;))

コード:
Imports MySql.Data.MySqlClient      ' MySQLアクセス用

Dim conn As MySqlConnection         ' MySQL接続用定義
Dim reader As MySqlDataReader       ' MySQL接続用定義
Dim command As MySqlCommand         ' MySQL接続用定義

Dim connStr As String               ' 接続用文字列
Dim sSql As String                  ' SQL文

' 既にopenしていたら、いったんcloseする。
If Not conn Is Nothing Then conn.Close()

' 接続文字列 設定
connStr = String.Format("server={0};user id={1}; password={2}; database=test; pooling=false", "", "root", "test")

' 接続
Try
    conn = New MySqlConnection(connStr)
    conn.Open()
Catch ex As MySqlException
    MessageBox.Show("Error connecting to the server: " + ex.Message, "接続失敗", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1)
    Exit Sub
End Try

Try
    sSql = "select * from user where loginid = 'test' and password = 'test';"
    command = New MySqlCommand(sSql, conn)
    reader = command.ExecuteReader

    If reader.Read() Then
    Else
        MessageBox.Show("ERR", "ERR", MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1)
    End If
Catch ex As MySqlException
    MessageBox.Show("Error connecting to the server: " + ex.Message, "アクセス失敗", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1)
Finally
    If Not reader Is Nothing Then reader.Close()
    If Not command Is Nothing Then command.Dispose()
    If Not conn Is Nothing Then conn.Close()
    If Not conn Is Nothing Then conn.Dispose()
End Try


じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-03-18 10:09
引用:

techbitsさんの書き込み (2006-03-17 13:05) より:

この方法はサーバエクスプローラーでは、MySQLサーバは参照できないので
ウィザードなどは使用できず、プロパティを手動で設定して、MySQLと接続すると言う形になるんでしょうか?


MySQL OLE DB Provider とかないですかね?

引用:

ひろれいさんの書き込み (2006-03-17 14:28) より:

Finally
  If Not reader Is Nothing Then reader.Close()
  If Not command Is Nothing Then command.Dispose()
  If Not conn Is Nothing Then conn.Close()
  If Not conn Is Nothing Then conn.Dispose()
End Try


サンプルはサンプルなんですが、ここまで書くのであれば、
Try ブロックをネストするか Finally でネストした方がいいですね。(^^)

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
ひろれい
ぬし
会議室デビュー日: 2006/03/02
投稿数: 486
お住まい・勤務地: 万博開催地
投稿日時: 2006-03-18 10:31
引用:

じゃんぬねっとさんの書き込み (2006-03-18 10:09) より:

サンプルはサンプルなんですが、ここまで書くのであれば、
Try ブロックをネストするか Finally でネストした方がいいですね。(^^)



そうですね。中途半端ですいませんm(_ _)m
あのサンプルは、VB.NETを勉強するために作ったコードのため、厳密に書いてありません。

私は、ソースコードを教えていただいても自分なりに納得した上で書き換えたりしています(結局、そのソースコードの責任は自分にあるのですから、当然ですね)が、全ての人がそうだとは限りませんからね。

以後、気をつけます。
techbits
会議室デビュー日: 2006/02/02
投稿数: 10
投稿日時: 2006-03-19 02:21
MySQLDirect .NET Data Provider (http://www.componentsource.co.jp/products/516026/15231/summary.html)
というものがあるんですが、完全な商用品なので、選択肢外だったのです。

いろいろ調べてみたのですが、MS SQL Server と同様の手順で開発したければ
この製品を購入するのが手っ取り早いようです。
1

スキルアップ/キャリアアップ(JOB@IT)