zoukankan      html  css  js  c++  java
  • 解决C#中txt文档导入数据库时,中文显示乱码的问题

    与前篇文章不同之处用红笔标记

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    using System.IO;
    using System.Data.SqlClient;

    namespace txt导入至数据库
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
            public static System.Text.Encoding GetFileEncoding(string fileFullName)
            {
                FileStream fs = new FileStream(fileFullName, FileMode.Open, FileAccess.Read);
                System.Text.Encoding r = GetType(fs);
                fs.Close();
                return r;
            }


            public static System.Text.Encoding GetType(FileStream fs)
            {
                /*
                 * byte[] Unicode=new byte[]{0xFF,0xFE}; 
                 * byte[] UnicodeBIG=new byte[]{0xFE,0xFF}; 
                 * byte[] UTF8=new byte[]{0xEF,0xBB,0xBF};
                 */

                BinaryReader r = new BinaryReader(fs, System.Text.Encoding.Default);
                byte[] ss = r.ReadBytes(3);
                r.Close();
                //编码类型 Coding=编码类型.ASCII;  
                if (ss[0] >= 0xEF)
                {
                    if (ss[0] == 0xEF && ss[1] == 0xBB && ss[2] == 0xBF)
                    {
                        return System.Text.Encoding.UTF8;
                    }
                    else if (ss[0] == 0xFE && ss[1] == 0xFF)
                    {
                        return System.Text.Encoding.BigEndianUnicode;
                    }
                    else if (ss[0] == 0xFF && ss[1] == 0xFE)
                    {
                        return System.Text.Encoding.Unicode;
                    }
                    else
                    {
                        return System.Text.Encoding.Default;
                    }
                }
                else
                {
                    return System.Text.Encoding.Default;
                }
            }
            private void button1_Click(object sender, EventArgs e)
            {
                if (ofdfile.ShowDialog() == DialogResult.OK)
                {
                   using (FileStream fileStream=File.OpenRead(ofdfile.FileName))
                   {
                      Encoding readEncoding = GetFileEncoding(ofdfile.FileName);

                     
                    using (StreamReader streamreader = new StreamReader(fileStream,readEncoding))
                    {
                       
                        using (SqlConnection conn = new SqlConnection("server=.;database=test;user id=sa;password=123456"))
                        {
                            conn.Open();
                            string lines = null;
                            using (SqlCommand cmd = conn.CreateCommand())
                            {
                                cmd.CommandText = "insert into T_persons(name,age)values(@name,@age)";
                              
                                while ((lines=streamreader.ReadLine()) != null)
                                {
                              
                                    string[] strs = lines.Split('|');
                                    string name = strs[0].ToString();
                                    int age = Convert.ToInt32(strs[1]);
                                    cmd.Parameters.Clear();
                                    cmd.Parameters.Add(new SqlParameter("name",name));
                                    cmd.Parameters.Add(new SqlParameter("age",age));
                                    cmd.ExecuteNonQuery();
                                   
                                }
                            }

                        }
                    }
                    }
                   MessageBox.Show("数据导入成功");

                }
            }
        }
    }

  • 相关阅读:
    .NET开发框架(六)-架构设计之IIS负载均衡(视频)
    Docker(二)-在Docker中部署Nginx实现负载均衡(视频教程)
    Docker(一)
    .NET Core跨平台部署于Docker(Centos)- 视频教程
    CentOS7 vsftp 安装与配置(视频教程)
    Hyper-V + CentOS7 安装教程(视频)
    火热的云原生到底是什么?一文了解云原生四要素!
    广州.NET微软技术俱乐部微信群各位技术大牛的blog
    .NET开发框架(五)-IIS上部署ASP.NET Core项目教程
    VMware 虚拟机网络配置
  • 原文地址:https://www.cnblogs.com/agile2011/p/2058242.html
Copyright © 2011-2022 走看看