asp.net 中上传并读取Excel文件(OLEDB方式)

采用OLEDB方式将Excel文件上传到服务器指定的临时目录,并读取Excel文件内容保存到服务器的数据库中。

开发环境:VS2005, ASP.net, C#, SQL2005

页面代码 :

 

< table  width ="100%" >
        
< tr >
            
< td  height ="28"  bgcolor ="#5BB5D2" >
                
< div  align ="center"  class ="cubai9pt" >
                    酒店基本信息Excel导入
</ div >
            
</ td >
        
</ tr >
        
< tr >
            
< td   valign ="top" >
                
< table  width ="100%"  cellspacing ="0" >
                    
< tr  bgcolor ="#ffffff"  class ="song" >
                        
< td  height ="30" >
                            
< div  align ="center" >
                                Excel酒店文件:
< asp:FileUpload  ID ="FileUpload1"  runat ="server"  Width ="583px"   /></ div >
                        
</ td >
                        
< td  height ="30"  colspan ="3" >
                            
< span  class ="song" > &nbsp;   &nbsp;   &nbsp;&nbsp;
                                
< input  name ="Submit"  type ="submit"  class ="an"  value ="保存"  id ="SaveInfo"  runat ="server"
                                    onserverclick
="SaveInfo_ServerClick"   /></ span ></ td >
                    
</ tr >
                
</ table >
            
</ td >
        
</ tr >
        
< tr >
            
< td  height ="28"   >
                
< div  align ="center"  class ="red" >
                    注意:在没有出现导入成功界面之前,请不要刷新该页面!
</ div >
            
</ td >
        
</ tr >
    
</ table >

页面类代码:

 

using  System;
using  System.Data;
using  System.Configuration;
using  System.Collections;
using  System.Collections.Generic;
using  System.Web;
using  System.Web.Security;
using  System.Web.UI;
using  System.Web.UI.WebControls;
using  System.Web.UI.WebControls.WebParts;
using  System.Web.UI.HtmlControls;
using  BILL;
using  Model;
using  Component;
using  System.IO;
using  System.Reflection;
using  System.Data.OleDb;

public   partial   class  Admin_Hotel_UploadExcelHotelRoom : System.Web.UI.Page
{
    
protected void Page_Load(object sender, EventArgs e)
    
{

    }


    
protected void SaveInfo_ServerClick(object sender, EventArgs e)
    
{
        
string file = "";

        
if (FileUpload1.HasFile)
        
{
            file 
= System.Web.HttpContext.Current.Request.MapPath("~/temp/"+ CommonSet.CreateRandFileName(FileUpload1.FileName);
            FileUpload1.SaveAs(file);
        }

        
else
        
{
            Page.RegisterStartupScript(
"alert""<script>alert('请选择Excel文件!!');</script>");
            
return;
        }


        
if (!File.Exists(file))
        
{
            Response.Write(
"<script language='javascript'>window.alert('Excel文件上传失败!');</script>");
            
return;
        }

        
string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + file + ";" + "Extended Properties=Excel 8.0;";
        OleDbConnection conn 
= null;
        DataSet ds 
= null;
        
try
        
{
            conn 
= new OleDbConnection(strConn);
            conn.Open();

            
string strExcel = "";
            OleDbDataAdapter myCommand 
= null;

            strExcel 
= "select * from [sheet1$]";
            myCommand 
= new OleDbDataAdapter(strExcel, strConn);
            ds 
= new DataSet();
            myCommand.Fill(ds, 
"table1");
        }

        
catch (Exception x)
        
{
            
if (conn.State == ConnectionState.Open)
            
{
                conn.Close();
            }

            File.Delete(file);
            Page.RegisterStartupScript(
"alert""<script>alert('Excel文件格式错误!');</script>");
            
return;
        }


        
        
//IList<HotelAddin> info = new List<HotelAddin>();
        IList<HotelRoomInfo> info = new List<HotelRoomInfo>();
        IList
<string> lBed = new List<string>();

        
try
        
{
            
for (int i = 0; i < ds.Tables["table1"].Rows.Count; i++)
            
{
                HotelRoomInfo temp 
= new HotelRoomInfo();

                
string tt = ds.Tables["table1"].Rows[i].ItemArray.GetValue(0).ToString();
                
if ((tt == null|| (tt.Trim() == ""))
                    
break;
                temp.HotelId 
= ds.Tables["table1"].Rows[i].ItemArray.GetValue(0).ToString();
                temp.RoomId 
= ds.Tables["table1"].Rows[i].ItemArray.GetValue(2).ToString();
                temp.RoomName 
= ds.Tables["table1"].Rows[i].ItemArray.GetValue(3).ToString();
                temp.TypeName 
= ds.Tables["table1"].Rows[i].ItemArray.GetValue(4).ToString();
                temp.IsDisp 
= Convert.ToInt32(ds.Tables["table1"].Rows[i].ItemArray.GetValue(5).ToString());
                temp.IsHave 
= Convert.ToInt32(ds.Tables["table1"].Rows[i].ItemArray.GetValue(6).ToString());
                temp.IsKitchen 
= Convert.ToInt32(ds.Tables["table1"].Rows[i].ItemArray.GetValue(7).ToString());
                temp.IsAddinBed 
= Convert.ToInt32(ds.Tables["table1"].Rows[i].ItemArray.GetValue(8).ToString());
                temp.NormalNo 
= Convert.ToInt32(ds.Tables["table1"].Rows[i].ItemArray.GetValue(9).ToString());
                temp.MaxNo 
= Convert.ToInt32(ds.Tables["table1"].Rows[i].ItemArray.GetValue(10).ToString());
                temp.IsRecommend 
= Convert.ToInt32(ds.Tables["table1"].Rows[i].ItemArray.GetValue(11).ToString());
                temp.MemPointRate 
= Convert.ToDecimal(ds.Tables["table1"].Rows[i].ItemArray.GetValue(12).ToString());
                temp.ExploitRate 
= Convert.ToDecimal(ds.Tables["table1"].Rows[i].ItemArray.GetValue(13).ToString());
                temp.AffiliateRate 
= Convert.ToDecimal(ds.Tables["table1"].Rows[i].ItemArray.GetValue(14).ToString());
                temp.IsBreakfast 
= Convert.ToInt32(ds.Tables["table1"].Rows[i].ItemArray.GetValue(15).ToString());
                temp.MinNights 
= Convert.ToInt32(ds.Tables["table1"].Rows[i].ItemArray.GetValue(16).ToString());
                temp.Remark 
= ds.Tables["table1"].Rows[i].ItemArray.GetValue(17).ToString();
                temp.LastUpdateTime 
= DateTime.Now;
                
string bed = ds.Tables["table1"].Rows[i].ItemArray.GetValue(18).ToString();

                info.Add(temp);
                lBed.Add(bed);
            }


            conn.Close();

            
//保存到数据库
            bool bRet = true;
            BillHotelRoom billRoom 
= new BillHotelRoom();
            BillHotelRoomBed billBed 
= new BillHotelRoomBed();
            
for (int i = 0; i < info.Count; i++)
            
{
                
try
                
{
                    
//billRoom.AddHotelRoom(
                    
                    IList
<HotelRoomBedInfo> lBedInfo = new List<HotelRoomBedInfo>();

                    
string[] hBed = lBed[i].Split(new Char[] '#' });
                    
for (int j = 0; j < hBed.Length; j++)
                    
{
                        HotelRoomBedInfo fac 
= new HotelRoomBedInfo();
                        fac.HotelId 
= info[i].HotelId;
                        fac.RoomId 
= info[i].RoomId;
                        fac.BedInfo 
= hBed[j];
                        
                        lBedInfo.Add(fac);
                    }


                  
                    
if( billRoom.AddHotelRoom(info[i], lBedInfo) == false )
                    
{
                        bRet 
= false;
                        
break;
                    }

                }

                
catch (Exception dddd)
                
{
                    bRet 
= false;
                    
break;
                }

            }



            
if (bRet == true)
            
{
                File.Delete(file);
                Page.RegisterStartupScript(
"alert""<script>alert('导入成功!');</script>");
                
return;

            }

            
else
            
{
                File.Delete(file);
                Page.RegisterStartupScript(
"alert""<script>alert('导入失败,请检查资料导入文件!');</script>");
                
return;
            }

        }

        
catch (Exception ex)
        
{
            
string mes = "<script language='javascript'>window.alert('" + ex.Message + "');</script>";
            Response.Write(mes);
            
return;
        }

    }

}



 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值