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

                }
            }
        }
    }

  • 相关阅读:
    python限定方法参数类型、返回值类型、变量类型等
    双拼自然码
    关于将汉语拼音字母“ü”改成“v”的设想和建议
    数据库转模型图
    python中的捕获异常、异常跟踪
    内部教师爆料:某些民办学校真正的内幕
    炸薯条
    IntelliJ IDEA添加JavaDOC注释 方法 快捷键
    java获取当前路径的方法
    java获取全部子类或接口的全部实现
  • 原文地址:https://www.cnblogs.com/agile2011/p/2058242.html
Copyright © 2020-2023  润新知