C# Odbc Informix读取中文方法

一。 部署好informix服务器后

二。 在windows主机安装好Informix Client-SDK, 这个软件客户端时免费的,可以在官网下载

三。配置好ODBC连接

1.用户名密码服务端口自行填写

2.关于客户语言的配置要使用以下参数:

Client Locale -> en_US.CP1252

Database Locale -> en_US.819

其他参数使用默认值即可:如下图:

 

四。通过c#读取表数据, 参考以下代码

需要引入: Newtonsoft.Json.dll

C#默认读取的时iso-8859-1, 需要转换为系统默认的:

OdbcConnection connection = new OdbcConnection();
            connection.ConnectionString = "DSN=odbchost;";
            connection.Open();
            OdbcCommand cmd = new OdbcCommand();
            cmd.Connection = connection;
            cmd.CommandText = "select first 3 * from tabname";

            OdbcDataReader reader = cmd.ExecuteReader();
            List<Hashtable> data = new List<Hashtable>();
            
            while (reader.Read())
            {
                int count = reader.FieldCount;
                Hashtable row = new Hashtable();
                for (int i = 0; i < count; i++)
                {
                    string columnName = reader.GetName(i);
                    string dataType = reader.GetDataTypeName(i).ToLower();
                    object value = null;
                    if (!reader.IsDBNull(i))
                    {
                        value = reader.GetValue(i);
                    }
                    if (dataType.Contains("char"))
                    {
                        string v2 = (string)value;
                        string v3 = null;
                        if (v2 != null)
                        {
                            byte[] bytes = Encoding.GetEncoding("ISO-8859-1").GetBytes(v2);
                            v3 = Encoding.Default.GetString(bytes);
                        }
                        row.Add(columnName, v3);
                    }
                    else
                    {
                        row.Add(columnName, value);
                    }
                    
                }
                data.Add(row);

            }

            string json = JsonConvert.SerializeObject(data);
            Debug.WriteLine(json);

 

posted @ 2025-01-24 11:41  半岛拖鞋  阅读(53)  评论(0)    收藏  举报