首页?>?数据库?>?SQL Server亚博体育体育世界杯登录版 > 正文

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

互联网 2017-04-18 13:27:53 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("数据导入成功!");

??????????????????? }
??????????????? }??

?????????? }??

?????? }

  • 相关标签:
  • 版权归原作者所有,如果有侵犯到您的权益,请联系本站删除!
  • 相关文章


    • 暂无相关信息

    专题推荐

    今日头条
  • 学习Python的正确姿势 学习Python的正确姿势
  • Google Chrome 58.0.3029.96 正式版发布 Google Chrome 58.0.3029.96 正式版发布
  • Docker公司更换 CEO,将着重发力商业变现 Docker公司更换 CEO,将着重发力商业变现
  • 优酷播放器 一款无优酷LOGO的精美优酷播放器代码 优酷播放器 一款无优酷LOGO的精美优酷播放器代码
  • 热门标签