首页 ┆ 网站地图 ┆ 在线留言 ┆ 游戏资讯 ┆ 资源下载 ┆ 端午节祝福 ┆ 迅雷在线影视
设为首页
加入收藏
联系我们
高级搜索
您当前的位置: 主页>NET专区>ASP.NET>asp.net实现将Excel文件导入到SQL数据库的三种解决方案
asp.net实现将Excel文件导入到SQL数据库的三种解决方案
来源: 发布时间:2008-06-05 发布人: 浏览: 人次   字体: [ ]  

本文讲述在asp.net环境下将Excel文件导入到SQL Server 数据中的三种方法,供编程人员参考,也做为一个备份了!
第一种方法通过到入Excel的VBA dll,通过VBA接口获取Excel数据到DataSet
OpenFileDialog openFile = new OpenFileDialog();
openFile.Filter = "Excel files(*.xls)|*.xls";
ExcelIO excelio = new ExcelIO();
if(openFile.ShowDialog()==DialogResult.OK)
{
  if(excelio!=null)
    excelio.Close();
  excelio = new ExcelIO(openFile.FileName);
  object[,] range = excelio.GetRange();
  excelio.Close();
 
  DataSet ds = new DataSet("xlsRange");
  int x = range.GetLength(0);
  int y = range.GetLength(1);
  DataTable dt = new DataTable("xlsTable");
  DataRow dr;
  DataColumn dc;
 
  ds.Tables.Add(dt);
  for(int c=1; c<=y; c++)
  {
    dc = new DataColumn();
    dt.Columns.Add(dc);
  }  
  object[] temp = new object[y];  
  for(int i=1; i<=x; i++)
  {
    dr = dt.NewRow();
    for(int j=1; j<=y; j++)
    {
        temp[j-1] = range[i,j];
    }
     dr.ItemArray = temp;
    ds.Tables[0].Rows.Add(dr);
  }
  dataGrid1.SetDataBinding(ds,"xlsTable");  
  if(excelio!=null)
    excelio.Close();
}

//第二种方法:将Excel文件数据库导入SQL Server的三种方案//方案一: 通过OleDB方式获取Excel文件的数据,然后通过DataSet中转到SQL Server
openFileDialog = new OpenFileDialog();
openFileDialog.Filter = "Excel files(*.xls)|*.xls";
if(openFileDialog.ShowDialog()==DialogResult.OK)
{
  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";  
  try
  {
    OleDbConnection oleDbConnection = new OleDbConnection(connExcel);
    oleDbConnection.Open();    
    //获取excel
    DataTable dataTable = oleDbConnection.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
    //获取sheet名,其中[0][1]...[N]: 按名称排列的表单元素
    string tableName = dataTable.Rows[0][2].ToString().Trim();
    tableName = "[" + tableName.Replace("'","") + "]";
    //利用SQL语句从Excel文件里获取数据
    //string query = "SELECT classDate,classPlace,classTeacher,classTitle,classID FROM " + tableName;
    string query = "SELECT 工程,姓名,名称,图片,尺寸 FROM " + tableName;
    dataSet = new DataSet();
    //OleDbCommand oleCommand = new OleDbCommand(query, oleDbConnection);
    //OleDbDataAdapter oleAdapter = new OleDbDataAdapter(oleCommand);
    OleDbDataAdapter oleAdapter = new OleDbDataAdapter(query,connExcel);
   
    oleAdapter.Fill(dataSet,"gch_Class_Info");
    //dataGrid1.DataSource = dataSet;
    //dataGrid1.DataMember = tableName;
    dataGrid1.SetDataBinding(dataSet,"gch_Class_Info");
    //从excel文件获得数据后,插入记录到SQL Server的数据表
    DataTable dataTable1 = new DataTable();
   
    SqlDataAdapter sqlDA1 = new SqlDataAdapter(@"SELECT classID, classDate,
classPlace, classTeacher, classTitle, durativeDate FROM gch_Class_Info",sqlConnection1);
   
    SqlCommandBuilder sqlCB1 = new SqlCommandBuilder(sqlDA1);
   
    sqlDA1.Fill(dataTable1);
    foreach(DataRow dataRow in dataSet.Tables["gch_Class_Info"].Rows)
    {
        DataRow dataRow1 = dataTable1.NewRow();        
        dataRow1["classDate"] = dataRow["工程"];
        dataRow1["classPlace"] = dataRow["姓名"];
        dataRow1["classTeacher"] = dataRow["名称"];
        dataRow1["classTitle"] = dataRow["图片"];
        dataRow1["durativeDate"] = dataRow["尺寸"];
        dataTable1.Rows.Add(dataRow1);
    }
    Console.WriteLine("新插入 " + dataTable1.Rows.Count.ToString() + " 条记录");
    sqlDA1.Update(dataTable1);
   
    oleDbConnection.Close();
  }
  catch(Exception ex)
  {
    Console.WriteLine(ex.ToString());
  }
}


共2页: 上一页 1 [2] 下一页
相 关 文 章   发布商链接
·asp.net动态生成txt文本文件供用户下...
·asp.net读取Xml文件并进行DropDownLi...
·asp.net文件上传大小限制的控制
·在Ie中保存图片时出现"800700de错误"...
·ASP.NET中的doPostBack脚本函数的应...
·怎样在Asp.net中实现当前网站的访问...
·Asp.net进行ajax开发操作下的异常几...
·asp.net无刷新上传文件
·asp.net在上传图片上加入自己的背景...
·ASP.NET实现XmlHttp跨域访问实例代码
 §最新评论:(评论内容只代表网友观点,与本站立场无关!)
网名: 验证码:  【所有评论】【↑返回顶部
评 分: 12 345
评论内容:(不能超过500字,请自觉遵守互联网相关政策法规。[按 Ctrl+Enter 可直接提交]
注意:请勿在本站发布政治话题、色情及违反法律的内容。
IT知道网 声明:刊登此文章是为了传递更多信息,文章内容仅供参考,转载请注明出处。
推 荐 文 章
·如何实现在DataList控件中的D...
·实例讲解asp.net生成高质量缩
·asp.net适用于IE或FireFox的...
·举例详解C#代码与javaScript...
·asp.net无刷新上传文件
·在Ie中保存图片时出现"800700...
·asp.net文件上传大小限制的控
·asp.net动态生成txt文本文件...
·实现多列,带图片的DropDownLi...
·javascript实现TreeView 控件
·ASP.NET配置Word的操作权限
·让FileUpload控件在IE和FireF...
·ASP.NET实现Office文档的分类
·asp.net文件下载显示进度条的
·实例讲解ASP.NET上传大文件的
热 门 文 章
·asp.net(C#)上传下载及文件管...
·图解asp.net如何用excel做报...
·asp.net无刷新上传文件
·Asp.Net防止刷新重复提交数据...
·asp.net中Web.Config配置文件...
·ASP.NET取得物理路径和虚拟路...
·asp.net(c#)生成验证码代码,...
·asp.net页面回传与js调用服务...
·asp.net(C#版)实现登录验证码...
·DataGrid中DropDownList触发S...
·ASP.net 实现批量数据更新或...
·asp.net中DataBinder.Eval的...
·asp.net可输入的下拉框复合控...
·asp.net中常见的几种日历控件...
·示例小解LinkButton组件中的C...
网站首页 - 关于本站 - 加入收藏 - 网站地图 - 友情连接 - 在线留言 - 联系我们 - 返回顶部
Copyright © 2007 IT知道网.[冀ICP备07026896号]. All Rights Reserved .