C#查询数据库进行字符串集的转换,将GB2312转换成ISO8859,或将ISO8859转化成GB2312格式。

将GB2312转换成ISO8859,或将ISO8859转化成GB2312格式。我是利用的SQL Server 在Oracle中也是可以的。

//在FORM中增加控件button 按钮控件,datagridview查询结果展示控件。button1_Click这个为按钮的单机事件。

利用2个for 循环遍历全部的数据,并进行转换,转换后再往回复制。最后再将赋值后的表呈现出来

private void button1_Click(object sender, EventArgs e)
        {
            SqlConnection con = new SqlConnection("Data Source=服务器IP;Initial Catalog=数据库;User ID=用户名;Password=密码");
            con.Open();
            string sql = "select * from student";
            SqlDataAdapter sa = new SqlDataAdapter(sql,con);
            DataSet ds = new DataSet();
            sa.Fill(ds);
            for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
            {
                for (int j = 0; j < ds.Tables[0].Columns.Count; j++)
                {
                    string str = ds.Tables[0].Rows[i][j].ToString();
                    string strto = GB2312TOISO8859(str);  /将GB2312转ISO8859

                    //string strto = ISO8859TOGB2312(str); //ISO8859转GB2312
                    ds.Tables[0].Rows[i][j] = strto;
                }
            }
            this.dataGridView1.DataSource = ds.Tables[0];
            con.Close();
        }
        //将GB2312转ISO8859
        public string GB2312TOISO8859(string str)
        {
            System.Text.Encoding ISO8859 = System.Text.Encoding.GetEncoding("iso8859-1");
            System.Text.Encoding GB2312 = System.Text.Encoding.GetEncoding("gb2312");
            byte[] gb = GB2312.GetBytes(str);
            return ISO8859.GetString(gb);
        }
        //ISO8859转GB2312
        public string ISO8859TOGB2312(string str)
        {
            System.Text.Encoding ISO8859 = System.Text.Encoding.GetEncoding("iso8859-1");
            System.Text.Encoding GB2312 = System.Text.Encoding.GetEncoding("gb2312");
            byte[] iso = ISO8859.GetBytes(str);
            return GB2312.GetString(iso);
        }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值