可能是数据库中的文本编码问题啊!
我以前从文件中读数据,文件是用ANSI编码的。所以汉字在LISTBOX中显示的就是乱码
后来我读文件改用下面这种方法
StreamReader strA = new StreamReader((Stream)File.OpenRead("a.txt"),Encoding.Default);
关键就是是那个Encoding.Default(使用系统默认的编码方式)希望我的经历对你有所帮助!

解决方案 »

  1.   

    编码用 Utf-8 数据库字段用 Nvarchar
      

  2.   

    编码用 Utf-8 数据库字段用 varchar
      

  3.   

    查询的SQL语句才用加N方式
    即string sql=N'.................';
      

  4.   

    原代码:
    string sqlstr ="select DB_NAME from tb1 ";//oracle
    OleDbConnection  sconn=new OleDbConnection (m_strConn);OleDbDataAdapter  cmd= new OleDbDataAdapter(sqlstr ,sconn) ;
    DataSet ds = new DataSet();
    cmd.Fill(ds, "test");
    listbox.DataSource= ds.Tables[0].DefaultView;listbox.DisplayMember= "DB_NAME" ;
    listbox.ValueMember = "DB_NAME" ;
      

  5.   

    编码用 Utf-8 为什么不试试GB2312
      

  6.   

    string sql=N'...'
    其中如果有非中文的话用这个试试
      

  7.   

    现在的问题是 100条正常,100条后是乱码,不管是英文还是中文.且大部分表是正常的(只有一个表是有问题).
    另外,数据库是oracle 92 (UNIX),用sql plus看有问题的表也是正常显示的.
    难道是C#的bug.
    另外:怎么在winform中指定 Utf-8 编码?
      

  8.   

    用的什么连接方式
    换 Odbc 看看!