作者 主題: VB .NET Windows Form下連接MySQL時中文問題  (閱讀 8033 次)

0 會員 與 1 訪客 正在閱讀本文。

myz

  • 活潑的大學生
  • ***
  • 文章數: 433
    • 檢視個人資料
[server部分]
MySQL Server:4.11.1-2 on Linux
/etc/my.cnf也有設default-character-set=utf8
資料庫/資料表欄位校對都設成 utf-8
------------------------------------
[client部分vb .net windows form]
windows有安裝MySQL Connector Net 1.0.4
專案有加入mysql.data.dll參考

Imports MySql.Data.MySqlClient

textbox1.text="許1瀞2碁3"
insert into資料庫後datagrid1負責show資料,這時顯示的是"?1?2?3"
中文字變成了?

但是我用MySQL的 MySQL Query Browser、xSqlTools以及 phpMyAdmin去手動下指令INSERT INTO tbl_test(id) VALUES ('許1瀞2碁3'); 這些工具新增及查詢都可以正常新增及顯示 "許1瀞2碁3",表示我的資料庫是可以處理這些字的。

所以想請教的是,我在vb .net windows form下要 insert into資料是不是要先處理呢
代碼: [選擇]

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

   Dim cn As New MySqlConnection("server=192.168.1.111;user id=user1;password=123456;database=mytest")
        Dim cmd As New MySqlCommand
        Try
            cn.Open()
            cmd.Connection = cn
            cmd.CommandText = "INSERT INTO tbl_test (id) VALUES ('" & Trim(TextBox1.Text) & "');"
            cmd.ExecuteNonQuery()
            cmd.Dispose()
        Catch ex As Exception
        End Try
        Dim myquery As String = "select * from tbl_test"
        Dim adpt As New MySqlDataAdapter(myquery, cn)
        Dim myData As New DataTable
        myData.Clear()
        adpt.Fill(myData)
        DataGrid1.DataSource = myData
        cn.Dispose()

 End Sub

Darkhero

  • 酷!學園 學長們
  • 俺是博士!
  • *****
  • 文章數: 3728
  • 性別: 男
    • 檢視個人資料
    • ㄚ凱隨手紀
VB .NET Windows Form下連接MySQL時中文問題
« 回覆 #1 於: 2005-07-06 01:53 »
沒有 set names utf-8 ?
希望我們的討論是為了把問題解決,而不是爭論誰對誰錯.
『灌水才是重點,發文只是順便』
『我寧可讓不會釣魚的工程師餓死,也不想讓會餓死的工程師去攪沉公司....』
Blog: http://blog.darkhero.net/
秘密基地: http://www.darkhero.net/comic/
目前服務的網站: http://www.libook.com.tw/

myz

  • 活潑的大學生
  • ***
  • 文章數: 433
    • 檢視個人資料
Re: VB .NET Windows Form下連接MySQL時中文問題
« 回覆 #2 於: 2005-07-06 18:13 »
找到啦
代碼: [選擇]
Dim cn As New MySqlConnection("server=192.168.1.111;user id=user1;password=123456;database=mytest")

後面要加CHARSET=utf8
代碼: [選擇]
Dim cn As New MySqlConnection("server=192.168.1.111;user id=user1;password=123456;database=mytest;CHARSET=utf8")

Sanada

  • 可愛的小學生
  • *
  • 文章數: 14
    • 檢視個人資料
VB .NET Windows Form下連接MySQL時中文問題
« 回覆 #3 於: 2005-08-16 11:22 »
你好!我也是使用VB .NET +MySQL 4.1 版
使用MySQL 提供的UI 進行讀出寫入Unicode 都正常
但當我寫程式讀出資料內容,秀在畫面上卻是??
我的資料庫欄位皆為utf8
如果 set names 'big5' 則顯示會正常,但卻不是每個字都是正確顯示,有些特殊字還是會出問題
如果 set names 'uft8' 則輸出皆是??
我參考了許多相關文章也做了相對應的設定
包括my.conf 的設定
連線字串加入CHARSET=utf8
或者是 set names 'uft8'

如上,也是得到同樣的結果
,附註一點,我是使用 odbconnection 而不是使用MySql 提供的函式,請問各位有確切的設定方法嗎?

TyroneYeh

  • 俺是博士!
  • *****
  • 文章數: 2396
  • 性別: 男
    • 檢視個人資料
VB .NET Windows Form下連接MySQL時中文問題
« 回覆 #4 於: 2005-08-16 11:40 »
MyODBC 目前還不支援 Unicode 所以請用 MySQL Connector Net 1.0.4 來連接
--
TyroneYeh

Sanada

  • 可愛的小學生
  • *
  • 文章數: 14
    • 檢視個人資料
VB .NET Windows Form下連接MySQL時中文問題
« 回覆 #5 於: 2005-08-16 11:57 »
非常感謝你!@
以免我笨笨的一直試都試不出結果
再一次的感謝!