黑马程序员技术交流社区

标题: excel数据导入数据库 [打印本页]

作者: 张少甫    时间: 2013-2-26 12:18
标题: excel数据导入数据库
数据库里的数据可以直接导出为excel,excel能直接导入数据库吗?或者简单的方法
作者: xiaoxiang_04    时间: 2013-2-26 13:57
打开SQL,找个你要导入的数据库,右键选择任务,里面有导入数据和导出数据,点进去根据提示选就行了,注意设置列名和主键
作者: 生活墨墨    时间: 2013-2-26 15:52
可以,不用写代码,直接操作就行了。
作者: 生活墨墨    时间: 2013-2-26 15:59
首先随便点击一个数据库》》然后右击》》任务》》导入数据》》下一步》》数据源那里选择Microsoft Excel》》选择路径》》
选择版本》》下一步》》选择要导入的数据库》》下一步》》下一步》》然后按照提示来操作就ok了
作者: 汪振    时间: 2013-3-1 15:57
本帖最后由 汪振 于 2013-3-1 15:59 编辑

http://blog.csdn.net/zj_alex/article/details/8626504

我之前也捣鼓了好长时间,已经再用了,可行
  1. DataSet ds = new DataSet();
  2.             try
  3.             {
  4.                 //获取全部数据
  5.                 string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + excelFile + ";" + "Extended Properties=Excel 8.0;";
  6.                 OleDbConnection conn = new OleDbConnection(strConn);
  7.                 conn.Open();
  8.                 string strExcel = "";
  9.                 OleDbDataAdapter myCommand = null;
  10.                 strExcel = string.Format("select * from [{0}$]", sheetName);
  11.                 myCommand = new OleDbDataAdapter(strExcel, strConn);
  12.                 myCommand.Fill(ds, sheetName);
  13.                 //如果目标表不存在则创建
  14.                 string strSql = string.Format("if object_id('{0}') is null create table {0}(", sheetName);
  15.                 foreach (System.Data.DataColumn c in ds.Tables[0].Columns)
  16.                 {
  17.                     strSql += string.Format("[{0}] varchar(255),", c.ColumnName);
  18.                 }
  19.                 strSql = strSql.Trim(',') + ")";


  20.                 using (System.Data.SqlClient.SqlConnection sqlconn = new System.Data.SqlClient.SqlConnection(connectionString))
  21.                 {
  22.                     SqlCommand cmd = sqlconn.CreateCommand();
  23.                     cmd.CommandText = "drop table Sheet1";
  24.                     sqlconn.Open();
  25.                     cmd.ExecuteNonQuery();
  26.                     System.Data.SqlClient.SqlCommand command = sqlconn.CreateCommand();
  27.                     command.CommandText = strSql;
  28.                     command.ExecuteNonQuery();
  29.                     sqlconn.Close();
  30.                 }
  31.                 //用bcp导入数据
  32.                 using (System.Data.SqlClient.SqlBulkCopy bcp = new System.Data.SqlClient.SqlBulkCopy(connectionString))
  33.                 {
  34.                     bcp.SqlRowsCopied += new System.Data.SqlClient.SqlRowsCopiedEventHandler(bcp_SqlRowsCopied);
  35.                     bcp.BatchSize = 100;//每次传输的行数
  36.                     bcp.NotifyAfter = 100;//进度提示的行数
  37.                     bcp.DestinationTableName = sheetName;//目标表
  38.                     bcp.WriteToServer(ds.Tables[0]);
  39.                 }
  40.                 MessageBox.Show("数据导入成功");

  41.             }
  42.             catch (Exception ex)
  43.             {
  44.                 System.Windows.Forms.MessageBox.Show(ex.Message);
  45.             }
复制代码

q.jpg (57.77 KB, 下载次数: 18)

q.jpg





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2