CSV导入SQLSERVER数据库

    /// <summary>
    /// 通过文件流的方式来读取CSV文件
    /// </summary>
    /// <param name="files">文件名称</param>
    /// <param name="HeadYes">第一行是否为列标题</param>
    /// <param name="span">分隔符</param>
    /// <returns></returns>
    public DataTable ReadCsvFileToTable(bool HeadYes, char span)
    {
        //文件路径和文件名
        string files = path + fileName;
        DataTable dt = new DataTable();
        StreamReader fileReader = new StreamReader(files, Encoding.Default);
        try
        {
            //是否为第一行(如果HeadYes为TRUE,则第一行为标题行)
            int lsi = 0;
            //列之间的分隔符
            char cv = span;
            while (fileReader.EndOfStream == false)
            {
                string line = fileReader.ReadLine();
                string[] y = line.Split(cv);
                //第一行为标题行
                if (HeadYes == true)
                {
                    //第一行
                    if (lsi == 0)
                    {
                        for (int i = 0; i < y.Length; i++)
                        {
                            dt.Columns.Add(y[i].Trim().ToString());
                        }
                        lsi++;
                    }
                    //从第二列开始为数据列
                    else
                    {
                        DataRow dr = dt.NewRow();
                        for (int i = 0; i < y.Length; i++)
                        {
                            dr[i] = y[i].Trim();
                        }
                        dt.Rows.Add(dr);
                    }
                }
                //第一行不为标题行
                else
                {
                    if (lsi == 0)
                    {
                        for (int i = 0; i < y.Length; i++)
                        {
                            dt.Columns.Add("Col" + i.ToString());
                        }
                        lsi++;
                    }
                    DataRow dr = dt.NewRow();
                    for (int i = 0; i < y.Length; i++)
                    {
                        dr[i] = y[i].Trim();
                    }
                    dt.Rows.Add(dr);
                }
            }
        }
        catch (Exception ex)
        {
            throw ex;
        }
        finally
        {
            fileReader.Close();
            fileReader.Dispose();
        }
        return dt;
    }
    private string conn = ConfigurationManager.ConnectionStrings["ConStr"].ToString();    /// <summary>    /// 将指定表的数据Copy至目标数据库
    /// </summary>
    /// <param name="dt">数据表</param>
    /// <param name="outTime">超时时间</param>
    /// <returns></returns>
    public string CopyTableToSql(DataTable dt, int outTime, string tableName)
    {
        SqlBulkCopy sbc = new SqlBulkCopy(conn, SqlBulkCopyOptions.UseInternalTransaction);
        sbc.BulkCopyTimeout = outTime;
        sbc.NotifyAfter = dt.Rows.Count;
        try
        {
            sbc.DestinationTableName = tableName;
            sbc.WriteToServer(dt);
            return "";
        }
        catch (Exception ex)
        {
            return ex.Message;
        }
        finally
        {
            sbc.Close();
        }
    }

CSV导入SQLSERVER数据库,布布扣,bubuko.com

时间: 2024-10-11 14:04:10

CSV导入SQLSERVER数据库的相关文章

mysql 导入sqlserver数据库

#mysql 导入sqlserver数据库 EXEC master.dbo.sp_addlinkedserver @server = N'sjkxb00', @srvproduct=N'MySQL', @provider=N'MSDASQL', @provstr=N'DRIVER={MySQL ODBC 5.3 Unicode Driver}; SERVER=localhost; _DATABASE=tigerdb; USER=root; PASSWORD=123456; OPTION=3' -

大数据量.csv文件导入SQLServer数据库

前几天拿到了一个400多M的.csv文件,在电脑上打开要好长时间,打开后里面的数据都是乱码.因此,做了一个先转码再导入数据库的程序.100多万条的数据转码+导入花了4分钟,感觉效率还可以.各位网友有更好的方法,请在留言中指点下,一起学习学习,多谢了. static void Main(string[] args) { int count = 0; string readerPath=@"C:\Users\Administrator\Desktop\readerDemo.csv"; st

excel导入sqlserver数据库大数据量,可每秒控制数量

数据库代码 USE [Test] GO /****** Object:  Table [dbo].[Table_1]    Script Date: 11/07/2017 17:27:29 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO SET ANSI_PADDING ON GO CREATE TABLE [dbo].[Table_1]( [id] [varchar](100) NULL, [NodeId] [varchar](

mysql导入sqlserver数据库表

原文:https://zhidao.baidu.com/question/1114325744502691499.html 在Navicat for MySQL 管理器中,创建目标数据库(注意:因为是点对点的数据导入,要求sql server 中要导出的数据库名称和要导入到Mysql 中的数据库的名字相同) 点击创建好的目标数据库website点的”表“一项,在右边会出现导入向导选项. 选择SQL Server数据库ODBC,“下一步”,数据链接属性-SQL SERVER ODBC 创建访问SQ

Excel文件批量导入SQLSERVER数据库中(利用Foreach容器)

具体步骤如下图:1.首先在SSIS工具箱拖一个 Foreach控件,并选择对应的文件夹,匹配对应的文件,具体截图如下 2.创建变量去接收 3.拖入一个数据流任务,里面再拖入一个excel源和OLE DB Destination,分别进行以下设置 4.编辑excel连接管理器,这里将用到foreach的变量来代替刚刚选择的那个excel文件,连接管理器的属性中设置变量的映射方法,expressions的属性编辑列表中,左边选择excelfilepath,这个是连接管理器的属性,我们将用变量来代替,

关于CSV转换成SQLserver数据库的一点感想

参加数据类比赛不止一次了,很多时候比赛官方给出的数据格式都是用CSV格式记录数据的,然后我们要将其导入数据库中,就需要我们的数据库有可以识别CSV的能力. 我用过MYSQL和SQLserver,MYSQL支持CSV格式的导入,这个大家搜一下,方法一堆堆的,但是SQLserver,你去搜一下“CSV导入SQLserver”,结果都是一些用语句(BULK INSERT)来处理的方法(这里不是说语句处理就不好什么的,关键是麻烦,怎么麻烦,首先CSV是逗号分隔数据的,每一行数据都有一个结束标志,有些格式

Silverlight将Excel导入到SQLserver数据库

最近纠结于读取Excel模板数据,将数据导入SQLServer的Silverlight实现,本文将实现代码贴出,作为一个简单的例子,方便各位: 1.先设计前台界面新建Silverlight5.0应用程序,出现MainPage.xaml,代码如下所示: <UserControl x:Class="Excel导入SQLServer数据库.MainPage" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/present

postgres导入其他数据库数据

最近对postgres数据库进行深入研究,将原来项目中使用的sqlserver数据库中的数据表导入postgres,网上搜索postgres数据导入,除空间数据库可以通过PostGIS 2.0 Shapefile and DBF Loader Exporter进行导入外,没发现其他的数据导入工具. 今天使用Navicat Preminm操作数据库时,偶然发现可以使用其数据传输菜单,从其他数据库中导入数据到postgres,利用此菜单可以将mysql.oracle.sqlserver.sqlite

Bulk Insert:将文本数据(csv和txt)导入到数据库中

将文本数据导入到数据库中的方法有很多,将文本格式(csv和txt)导入到SQL Server中,bulk insert是最简单的实现方法 1,bulk insert命令,经过简化如下 BULK INSERT schema_name . table_name FROM 'data_file' WITH ( FIELDTERMINATOR = 'field_terminator', ROWTERMINATOR = 'row_terminator', DATAFILETYPE=‘WideChar’ )