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("数据导入成功");

                }
            }
        }
    }

  • 相关阅读:
    小结一下在函数使用的时候加括号和不加括号的区别
    总结一下
    JavaScript中操作有些DOM时关于文本节点和元素节点的问题。
    HP DL388 gen9服务器安装RHEL 6.5系统
    第一次经历黑客攻击服务器系统
    小红帽5.9 配置静态IP上网问题
    redhat linux enterprise 5 输入ifconfig无效的解决方法
    关于将一台电脑分割成2个独立运行个体的测试...(1)
    Ubuntu 小白安装血泪史
    RHL 6.0学习日记, 先记下来,以后整理。
  • 原文地址:https://www.cnblogs.com/agile2011/p/2058242.html
Copyright © 2011-2022 走看看