如何把Excel数据导入到SQL2008数据库的实例方法

所属分类: 数据库 / mssql2008 阅读数: 222
收藏 0 赞 0 分享

复制代码 代码如下:

private void AddManyData_Click(object sender, RoutedEventArgs e)
       {
           OpenFileDialog openFileDialog = new OpenFileDialog();
           openFileDialog.Filter = "Excel文件|*.xls";

           if ((bool)openFileDialog.ShowDialog())  
           {  
                FileInfo fileInfo = new FileInfo(openFileDialog.FileName);  
                string filePath = fileInfo.FullName;  
                string connExcel = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filePath + ";Extended Properties=Excel 8.0";

                using (OleDbConnection oleDbConn = new OleDbConnection(connExcel))
                {
                    oleDbConn.Open();

                    //获取excel表  
                    DataTable dt = oleDbConn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
                    //获取Excel表的表名 
                    string tableName = dt.Rows[0][2].ToString().Trim();
                    //去掉空格
                    tableName = "[" + tableName.Replace("'", "") + "]";

                    //利用SQL语句从Excel文件里获取数据  
                     string query = @"SELECT 学号,姓名,公益劳动,电子工艺实习,操作系统 ,计算机组成,数值分析,网络设备与集成,动态网站开发实验周,动态网站开发,均分,排名 FROM ";                  + tableName;
                     DataSet dataSet = new DataSet();

                     using (OleDbCommand oleDbcomm = oleDbConn.CreateCommand())
                     {
                         oleDbcomm.CommandText = query;
                         OleDbDataAdapter oleAdapter = new OleDbDataAdapter(oleDbcomm);
                         oleAdapter.Fill(dataSet);
                     }
                     string connStr = "Data Source=HESHUHUA-PC;Initial Catalog=RSMSystem;Integrated Security=True";
                     //利用SqlBulkCopy批量插入数据
                    using (SqlBulkCopy sqlbc = new SqlBulkCopy(connStr))
                    {
                        sqlbc.DestinationTableName = "T_StuScore";
                        // sqlbc.ColumnMappings.Add("学号", "StuNum"),第一个参数对应数据库中的列名,
                        //第二个参数对应数据库中相应表的列名
                        sqlbc.ColumnMappings.Add("学号", "StuNum");
                        sqlbc.ColumnMappings.Add("姓名", "StuName");
                        sqlbc.ColumnMappings.Add("公益劳动", "Activity");
                        sqlbc.ColumnMappings.Add("电子工艺实习", "ElecAct");
                        sqlbc.ColumnMappings.Add("操作系统", "OprationSystem");
                        sqlbc.ColumnMappings.Add("计算机组成", "ComputerMaded");
                        sqlbc.ColumnMappings.Add("数值分析", "DataAnalyze");
                        sqlbc.ColumnMappings.Add("网络设备与集成", "NetWork");
                        sqlbc.ColumnMappings.Add("动态网站开发实验周", "WebWeek");
                        sqlbc.ColumnMappings.Add("动态网站开发", "WebMake");
                        sqlbc.ColumnMappings.Add("均分", "AvScore");
                        sqlbc.ColumnMappings.Add("排名", "StuPaiMing");
                        sqlbc.WriteToServer(dataSet.Tables[0]);
                        MessageBox.Show("数据导入成功!");

                    }
                }  

           }  

       }

更多精彩内容其他人还在看

Excel导入数据库时出现的文本截断问题解决方案

在把Excel导入到数据库中时,发生文本截断问题:即导入的数据每行只有一部分,遇到这样的问题,甚是尴尬,接下来介绍此问题的解决方法,感兴趣的朋友可以了解下,希望本文对你有所帮助
收藏 0 赞 0 分享

数据库日常维护常用的脚本概述及部分测试

今天花点时间在SQL SERVER 2008中运行试试常用的数据库维护脚本,结果发现以前从书本上见过的backup语句和dump语句已经在2008里面消失了,感兴趣的你可不要错过了哈,经验之谈啊,希望可以帮助到你
收藏 0 赞 0 分享

sql2008安装后服务器改名造成名称不一致解决方法

查看服务器名是否一致如果不一致,则以serverproperty(servername)为准,接下来介绍详细解决方法,感兴趣的朋友可以参考下,希望可以帮助到你
收藏 0 赞 0 分享

sql2008评估期已过的解决办法及序列号

sql2008评估期已过的解决办法及序列号,有关如何升级您的测试版软件的信息
收藏 0 赞 0 分享

使用Sqlserver事务发布实现数据同步(sql2008)

事务的功能在sqlserver中由来已久,因为最近在做一个数据同步方案,所以有机会再次研究一下它以及快照等,发现还是有很多不错的功能和改进的。这里以sqlserver2008的事务发布功能为例,对发布订阅的方式简要介绍一下操作流程,一方面做个总结备份,一方面与大家进行一下分享和交
收藏 0 赞 0 分享

SQL2008 附加数据库提示 5120错误 解决办法

SQL2008 附加数据库提示 5120错误 解决办法,需要的朋友可以参考一下
收藏 0 赞 0 分享

如何把Excel数据导入到SQL2008数据库的实例方法

最近想练习一下批量插入数据,所以从网上找了一下资料,做了一个怎么把Excel文件数据导入到数据库。
收藏 0 赞 0 分享

SQL SERVER 2008 中三种分页方法与比较

SQL SERVER 2008 中三种分页方法与比较,需要的朋友可以参考一下
收藏 0 赞 0 分享

清理SQL Server 2008日志文件Cannot shrink log file 2 的解决方案

SQL 2008日志文件占了23G硬盘空间,而事务日志已经截断(Truncate),实际日志内容很小,1G都不到,想要释放日志文件霸占的多余空间
收藏 0 赞 0 分享

MyEclipse 配置SQL Server 2008数据库驱动操作步骤

本篇文章小编为大家介绍,MyEclipse 配置SQL Server 2008数据库驱动操作步骤。有需要的朋友参考下
收藏 0 赞 0 分享
查看更多