Visual Basic 中学校 掲示板 投稿内容
タグのない投稿を抽出 統計 RSS

Visual Basic 中学校 > 投稿一覧 >

VB2010からMySqlConnectionで日本語名のDBへ接続する方法

タグの編集...

投稿者 hogehoge1028   (社会人)   投稿日時 2017/2/15 15:07:42
いつも拝見しております。

久しぶりにVB2010でコーディングをすることになったものです。

VB2010を使ってMySqlConnectionにデータベース接続文字列を入力し、ネットワーク上のデータベースサーバーへ接続を試みていますが、例外処理でエラーを補足し、「UnKnown Database ????」となって接続できません。
このような現象についてご存知の方がいらっしゃいましたら、ご教授頂きたいと思います。

開発環境は以下の通りです。
■OS   :Windows7 Professional 32bit
 LANG:VB.Net2010 SP1
  DB:サーバー側:MySQL 5.1
        ※データベースはsjisで構築されています。
        クライアント側:MySQL Connector 6.7.4を利用しています。  

下記、プログラム
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
Private Function MyFunc() As Long
        Dim con As New MySqlConnection
        Dim nNum as Long = -1

        Try
            con.ConnectionString = "Server=[サーバー名];UserID=[ユーザー];Password=[パスワード];Initial Catalog=[テスト]"
                                                                                                                                                       ~~~~~~~~~ここが日本語です。
            con.Open()
            ~~~~~~~~~~~ここでエラー発生!!

            
            Dim sQuery As String = "SELECT COUNT(*) AS CNT FROM TBL_A;"
            Dim oCmd As New MySqlCommand(sQuery, con)

            Dim dReader As MySqlDataReader
            dReader = oCmd.ExecuteReader()
            dReader.Read()
            nNum = Long.Parse(dReader("CNT"))
            dReader.Close()
        Catch ex As Exception
            MsgBox(ex.Message)
        Finally
            con.Close()
        End Try

        Return nNum

End Function
↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑

宜しくお願い致します。



投稿者 魔界の仮面弁士   (社会人)   投稿日時 2017/2/15 16:22:31
> 「UnKnown Database ????」となって接続できません。
Unknown ではなく
UnKnown なのですね。


MySQL を使った事がないため、以下は予想でしか無いのですが:

(提案1) 接続文字列に CHARSET=sjis を追加してみる。
http://d.hatena.ne.jp/THE_MIND/20080517/1211043732

(提案2) 非ASCII なデータベース名をバッククォートで囲ってみる
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1299601512

投稿者 hogehoge1028   (社会人)   投稿日時 2017/2/15 17:08:25
早速の返信ありがとうございます。

ご教授頂いたURLを覗いてみます。

その結果は、またこちらに記載させて頂きます。

宜しくお願いします。


投稿者 hogehoge1028   (社会人)   投稿日時 2017/2/20 09:20:01
魔界の仮面弁士 様

返信が遅くなりまして申し訳ありません。
また、ご提案ありがとうございました。

早速、提案頂いた内容を試してみましたが、
残念ながら解決には至りませんでした。

やはり日本語名でデータベースを構築することに問題があるのでしょうか。


投稿者 shu   (社会人)   投稿日時 2017/2/21 07:57:52
Initial Catalog
ではなくて
Database
ではどうでしょう?

日本語でなければ接続できたのでしょうか?

投稿者 hogehoge1028   (社会人)   投稿日時 2017/2/22 17:28:23
返信がおそくなりまして申し訳ありません。

また、Initial CatalogではなくてDatabaseでも接続することが出来ませんでした。

database名が日本語でない場合は問題なく接続できます。