发布
社区首页 >问答首页 >Excel向数据库sql server 2005报告

Excel向数据库sql server 2005报告
EN

Stack Overflow用户
提问于 2011-04-20 16:04:35
回答 1查看 414关注 0票数 1

我每天都会收到excel表格,并希望将它们上传到具有完全相同列名的现有数据库中,我想在server 2005中这样做,但我认为创建一个可以自动完成此操作的asp.net程序会更容易,这样管理人员就可以自己做了。

我会使用大容量插入吗?

如何将excel工作表导入datatable?

编辑:,我有第一部分要做

代码语言:javascript
代码运行次数:0
复制
handling time 
1:12:53
1:06:29
0:10:58
0:13:33
1:15:45
0:41:19

这是我的excel表中的一列(hh:mm:ss)。

但是,当我将大容量副本复制到varchar字段时

我得到了

代码语言:javascript
代码运行次数:0
复制
12/30/1899 1:12:53 AM
12/30/1899 1:06:29 AM
12/30/1899 12:10:58 AM
12/30/1899 12:13:33 AM
12/30/1899 1:15:45 AM
12/30/1899 12:41:19 AM
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-04-20 16:24:56

是的,我建议你使用SqlBulkCopy

代码语言:javascript
代码运行次数:0
复制
DbProviderFactory factory = DbProviderFactories.GetFactory("System.Data.OleDb");
            DbDataAdapter adapter = factory.CreateDataAdapter();
            DbCommand selectCommand = factory.CreateCommand();
            selectCommand.CommandText = "SELECT ColumnNames FROM [Sheet1$]";
            DbConnection connection = factory.CreateConnection();
            connection.ConnectionString = connectionString;
            selectCommand.Connection = connection;
            adapter.SelectCommand = selectCommand;
            DataTable dtbl = new DataTable();
            adapter.Fill(dtbl);

            if (dtbl.Rows.Count > 0)
{
 using (SqlBulkCopy bulkCopy = new SqlBulkCopy(destConnection))
        {
            bulkCopy.ColumnMappings.Add("ColumnName", "ColumnName");
            bulkCopy.ColumnMappings.Add("ColumnName", "ColumnName");

            bulkCopy.DestinationTableName = "DBTableName";
            bulkCopy.WriteToServer(dtblNew);
        }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5733295

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档