21
2011
11

.net web批量导入txt数据到mssql

数据库表字段:

文本文件编码设置:


主要代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.IO;
using System.Configuration;
using System.Data.SqlClient;
using System.Text;
namespace testDataSet
{
    public partial class TxtToSQL : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
        }
        protected void ImportData()
        {
            if (FileUpload1.HasFile)
            {
                    using (FileStream fs = File.OpenRead(FileUpload1.PostedFile.FileName))
                    {
                        if (Path.GetExtension(FileUpload1.PostedFile.FileName).ToLower() != ".txt")
                        {
                            msg("请选择txt文件!"); return;
                        }
                        using (StreamReader sr = new StreamReader(fs,Encoding.Default))//编码要写上,不然插入的是乱码!
                        {
                          //  Encoding.Default;//新建的文本文档,不需要改格式,windows下默认是ASCLL格式
                          //  Encoding.UTF8   //另存为->下面的"编码" 选择 "UTF-8"
                            string connstr = ConfigurationManager.ConnectionStrings["dbtest"].ToString();
                            using (SqlConnection conn = new SqlConnection(connstr))
                            {
                                conn.Open();
                                using (SqlCommand cmd = conn.CreateCommand())
                                {
                                    cmd.CommandText = "insert into myusers(uname,uage,uemail,utel,uinfo) values(@uname,@uage,@uemail,@utel,@uinfo)";
                                    string line = null;
                                    while ((line = sr.ReadLine()) != null)
                                    {
                                        msg("t4");
                                        string[] strs = line.Split('|');
                                        msg(strs.Length.ToString());
                                        if (strs.Length != 5) throw new Exception("数据格式不对!请检查导入数据文件!");
                                        string uname = strs[0];
                                        Int16 uage = Convert.ToInt16(strs[1]);
                                        string uemail = strs[2];
                                        string utel = strs[3];
                                        string uinfo = strs[4];
                                        cmd.Parameters.Clear();
                                        cmd.Parameters.Add(new SqlParameter("uname", uname));
                                        cmd.Parameters.Add(new SqlParameter("uage", uage));
                                        cmd.Parameters.Add(new SqlParameter("uemail", uemail));
                                        cmd.Parameters.Add(new SqlParameter("utel", utel));
                                        cmd.Parameters.Add(new SqlParameter("uinfo", uinfo));
                                        cmd.ExecuteNonQuery();
                                    }
                                }
                            }
                        }
                        msg("导入成功!");
                    }
            }
            else
            {
                msg("请选择文件!");
            }
        }
        protected void msg(string Msg)
        {
            Response.Write("<script>alert('"+Msg+"');</script>");
        }
        protected void btn_import_Click(object sender, EventArgs e)
        {
            try
            {
                ImportData();
            }
            catch (Exception er)
            {
                Response.Write("出错,原因:"+er.Message);
            }
        }
    }
}


如果编码不对的话,中文会出现乱码,如图:

所以要注意编码。



版权声明:
作者:真爱无限 出处:http://www.pukuimin.top 本文为博主原创文章版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接.
« 上一篇下一篇 »

相关文章:

评论列表:

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。