@IT会議室は、ITエンジニアに特化した質問・回答コミュニティ「QA@IT」に生まれ変わりました。ぜひご利用ください。
- PR -

VB.NETでMYSQL4.1へアクセスしデータを取得

1
投稿者投稿内容
バニラミント
ベテラン
会議室デビュー日: 2005/05/27
投稿数: 58
投稿日時: 2005-07-24 15:45
MYSQL4.1上にデータベースを構築し
VB.NETからODBC.NET経由でアクセスしています
ADO.NETと利用してデータを取得しデータグリッドに
データを表示させたいのですが、以下のソースのように
すると漢字が文字化け(?????)してしまいます
サーバ側のコンソールからMYSQLへログインし
SQLを入力してデータを表示させた場合は正しく表示されました
MYSQLの文字セットがUTF-8 Unicodeなのが原因と思われるのですが
VB.NET上で文字コードをセットするほうほうがわかりません。
PHPの場合は、「SET NAMES character_set_name」と事前に発行することで
文字化けが回避できたのですが。
文字コードのセットの方法をご教示いただけますでしょうか?
よろしくお願いします

---ソース
Dim cn As OdbcConnection
Dim MyConString As String = "DRIVER={MySQL ODBC 3.51 Driver};" & _
"SERVER=ホスト名;" & _
"PORT=3306;" & _
"DATABASE=データベース名;" & _
"UID=ユーザID;" & _
"PASSWORD=パスワード;" & _
"OPTION=3"
cn = New OdbcConnection
cn.ConnectionString = MyConString
cn.Open()

Dim da As New OdbcDataAdapter
Dim cmd As New OdbcCommand
cmd.Connection = cn
cmd.CommandText = "SELECT * FROM テーブル名"
da.SelectCommand = cmd

Dim ds As New DataSet
da.Fill(ds)
DataGrid1.DataSource = ds
バニラミント
ベテラン
会議室デビュー日: 2005/05/27
投稿数: 58
投稿日時: 2005-07-25 20:51

自己レスです。
接続文字列を
以下のようにするとうまくいきましたっ
お騒がせシマシタ^^;

Dim cn As OdbcConnection
Dim MyConString As String = "DRIVER={MySQL ODBC 3.51 Driver};" & _
"SERVER=[ホスト名];" & _
"PORT=3306;" & _
"DATABASE=[データベース名];" & _
"UID=[ユーザID];" & _
"PASSWORD=[パスワード];" & _
"STMT=SET CHARACTER SET SJIS;" & _
"OPTION=3"

cn = New OdbcConnection
cn.ConnectionString = MyConString
cn.Open()
1

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