Từ 1 tới 5 trên tổng số 5 kết quả

Đề tài: Tiếng Việt khi kết nối với MySQL

  1. #1
    Ngày gia nhập
    05 2007
    Bài viết
    64

    Mặc định Tiếng Việt khi kết nối với MySQL

    Mình dùng C# để kết nối với MySQL, dùng Navicat để quản lý MySQL. Mình tạo ra 1 bảng, trong đó các trường kiểu varchar đều có charset là utf8, bảng cũng có charset là utf8.
    Code:
    CREATE TABLE `test` (
      `id` int(11) NOT NULL auto_increment,
      `n` varchar(30) collate utf8_unicode_ci default NULL,
      PRIMARY KEY  (`id`)
    ) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    Khi mình đánh 1 dòng tiếng Việt (ví dụ như "Nguyễn") trên notepad và dán vào table thì bình thường. Tuy nhiên, khi mình dùng lệnh đoạn code sau để insert vào table thì các ký tự tiếng Việt chuyển thành dấu "?"
    Code:
    using MySql.Data.MySqlClient;
    
    public static void Test()
            {
                string sql = "INSERT INTO Test VALUES (9,'Nguyễn')";
                MySqlConnection conn = null;
                try
                {
                conn = new MySqlConnection(connString);
                conn.Open();
                MySqlCommand cmd = new MySqlCommand(sql, conn);
                cmd.ExecuteNonQuery();
                }
                catch { }
                finally
                {
                    conn.Close();
                }
                
            }
    Mình có cài thêm "MySQL Connector Net 5.2.3" để kết nối với MySQL. Có ai giúp mình giải quyết vấn đề này với. Cảm ơn !!!
    I know... nothing

  2. #2
    Ngày gia nhập
    06 2007
    Nơi ở
    Hà nội
    Bài viết
    77

    theo những gì cậu mô tả thì đâu có vấn đề gì về font nhỉ,chỉ cần cái này "using MySql.Data.MySqlClient;" và charset=utf8 là đủ
    tiếc là máy ko cài MySQL nên trả test được
    Sống ở trên đời cần có một TẤM LÒNG để lúc đói còn có chỗ mà nhét THỨC ĂN

  3. #3
    Ngày gia nhập
    09 2007
    Bài viết
    724

    Tiếc là mình chưa xài MySql nên không biết được.
    Nhưng bên MS SQL thì mình đã từng gặp trường hợp như bạn rồi.

    bạn thử sửa câu lệnh Insert vào thử xem sao:
    Visual C# Code:
    1. string sql = "INSERT INTO Test VALUES (9,N'Nguyễn')";

    cái này bên SQL thì ok còn Mysql thì mình chưa biết có gì khác biệt không.
    nếu khác biệt thì chữ N sẽ được thay bằng một hàm gì đó bạn F1 vào Mysql thử xem sao.

    chúc bạn thành công.

  4. #4
    Ngày gia nhập
    05 2007
    Bài viết
    64

    @zkday2686: Mình đã thử làm như bạn, tuy nhiên Visual nó báo lỗi.

    Hôm post câu hỏi lên CDCV, mình vọc một chút nữa thì ra được câu trả lời, chỉ thêm "charset=utf8" vào chuỗi kết nối là xong.
    Cảm ơn các bạn nhiều nha.
    I know... nothing

  5. #5
    Ngày gia nhập
    09 2008
    Bài viết
    328

    tạo các bảng bằng cách kéo thả trong MYSQL làm thế nào vây
    Tham gia diễn đàn MACOS http://www.apple9.com/forum

Các đề tài tương tự

  1. Lỗi font tiếng việt khi kết nối mysql và C# sử dụng linqconnect
    Gửi bởi penguin89 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 1
    Bài viết cuối: 03-08-2011, 12:10 AM
  2. Lưu tiếng Việt trong csdl mysql 2005
    Gửi bởi bigstone trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 10
    Bài viết cuối: 24-04-2011, 10:07 AM
  3. ADO.NET Gặp vấn đề về lưu tiếng việt trong MySQL bằng C# ?
    Gửi bởi robinsonit trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 2
    Bài viết cuối: 21-03-2011, 10:00 AM
  4. Lỗi font tiếng việt trong MySQL
    Gửi bởi start_89 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 5
    Bài viết cuối: 05-06-2010, 03:43 PM
  5. Hãy ký vào đây để MySQL support collation cho tiếng Việt
    Gửi bởi anhnuat trong diễn đàn Thắc mắc MySQL và SQLite
    Trả lời: 1
    Bài viết cuối: 15-04-2008, 06:35 AM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn