Sybase ASE ADO.NET驱动 乱码问题解决

  
  用Sybase的Ado.NET驱动进行数据库连接的时候,有时候会出现中文乱码的情况。而OLEDB的驱动就一点问题都没有。可见Ado.NET的驱动还需要进一步完善啊..
  Sybase的默认的安装字符集选了ISO_1,结果装好数据库以后,发现在SQL Advantage里面执行SELECT语句,查询的结果里面中文内容正常!用c#写的代码读出的中文内容,乱码。
  通过查资料,得到的解决办法就是:安装CP936字符集!

  处理步骤:  (假设安装目录是c:\sybase)

  1:cmd命令行状态下:  
   1. c:\>cd \sybase\charsets\cp936
   2. c:\sybase\charsets\cp936> charset -Usa -P -S binary.srt cp936 
         

   2:在SQL Advantage中
          1>select id from syscharsets where name='cp936'
          2>go 
    把选择出来的id(我得出来的是171,网上好多人得到的也是171,如果你的不是171,就用你选择出来的值)然后:
    1>sp_configure "default character set id",171

   3:重启Sybase服务器。需要重启两次。第一次重启后会直接停止,需要启动第二次。或者:重新启动机器。 
   经过这些设定以后,乱码问题就解决了。

posted on 2008-05-20 20:49  antistone  阅读(1779)  评论(0编辑  收藏  举报