公司之前采集数据的客户都是mysql,mssql.oracle,最近,一个客户原来的生产商是采用的SYBASE数据库,于是出现了各种问题,

1、连不上数据库,需要加入下面的DLL

,数据库链接字符串Data Source={0};Port={1};UID={2};PWD={3};Database={4};

2、中文出现乱码的问题。出现这个问题首先想到的字符集设置的问题。通过查询资料生产厂商使用的SYBASE默认的CP850字符集,网上的办法大多数是更改服务器的字符集设置,

这个办法直接PASS掉。只能通过转码的方式解决了。采用下面的静态转换方法,其中cp850根据实际服务器字符集进行设置,如:latin1等

public static string Cp850ToGBK(string str)
{
try
{
var charsetGBK = System.Text.Encoding.GetEncoding("gbK").GetString(System.Text.Encoding.GetEncoding("cp850").GetBytes(str));
return charsetGBK ;
}
catch (Exception ex)
{
return null;
}
}

直接调用转换即可

Cp850ToGB2312(reader.GetString("中文字段")))

如果还是乱码,可以设置其他字符集如:latin1