net下如何將EXCEL導入到oracle中

開發環境 VS2008+NET3.5+ORACLE10G

 

數據庫中表設計

CREATE TABLE CCOP (
A CHAR(20) NULL,
B CHAR(20) NULL,
C CHAR(20) NULL,
D CHAR(20) NULL
)

 

EXCEL的第一行前四列列名爲 A B C D

 

using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Data.OracleClient;
using System.Data.OleDb;

public partial class TestExcel : System.Web.UI.Page
{
    CommonClass com = new CommonClass();
    protected void Page_Load(object sender, EventArgs e)
    {

    }
    public DataSet ExecleDs(string filenameurl,string table)
    {            
        string strConn = "Provider=Microsoft.Jet.OleDb.4.0;" + "data source=" +filenameurl+ "";
        //Extended Properties='Excel 8.0; HDR=YES; IMEX=1'";
        string connStr = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Extended Properties=/"Excel 8.0;IMEX=1/";" + "data source=" + filenameurl;

        OleDbConnection conn = new OleDbConnection(connStr);
        OleDbDataAdapter odda = new OleDbDataAdapter("select * from [Sheet1$]",conn);
        DataSet ds = new DataSet();           
        odda.Fill(ds,table);               
        return ds;         
    }
   
    protected void Button1_Click(object sender, EventArgs e)
    {       if (FileUpload1.HasFile == false)    
    {          
        Response.Write("<script>alert('請您選擇Excel文件')</script> ");       
        return;//當無文件時,返回      
    }     
        string IsXls=System.IO.Path.GetExtension(FileUpload1.FileName).ToString().ToLower();     
        if (IsXls != ".xls")   
        {        
            Response.Write("<script>alert('只可以選擇Excel文件')</script>");     
            return;//當選擇的不是Excel文件時,返回   
        }     
        string error = null;     
        OracleConnection cn = com.GetConnection();    
        cn.Open();    
        string strpath = FileUpload1.PostedFile.FileName.ToString();   //獲取Execle文件路徑   
        string filename = FileUpload1.FileName;                       //獲取Execle文件名 
        DataSet ds = ExecleDs(strpath,filename);    
        DataRow[] dr = ds.Tables[0].Select();                        //定義一個DataRow數組    
        int rowsnum = ds.Tables[0].Rows.Count;     
        if (rowsnum == 0)                                  
        {    
            Response.Write("<script>alert('Excel表爲空表,無數據!')</script>");   //當Excel表爲空時,對用戶進行提示  
        }  
        else    
        {       
            for (int i = 0; i < dr.Length; i++)     
        {              
                string A = dr[i]["A"].ToString();
                string B = dr[i]["B"].ToString();    
                string C = dr[i]["C"].ToString();     
                string D = dr[i]["D"].ToString();                   
                string sqlcheck = "select count(*) from CCOP where A='" + A + "'And B='" + B + "'";  //檢查用戶是否存在   
                bool ch = check(sqlcheck);        
                if (ch == true)       
                {               
                    string insertstr = "insert into CCOP(A,B,C,D) values('" + A + "','" + B + "','" + C + "','" + D + "')";
                    OracleCommand cmd = new OracleCommand(insertstr,cn);   
                    try           
                    {                 
                        cmd.ExecuteNonQuery();          
                    }  
                    catch (MembershipCreateUserException ex)       //捕捉異常
                    {   
                        Response.Write("<script>alert('創建用戶:"+ex.Message+"')</script>");
                    }        
                }           
                else     
                {   
                    error += "<em style='color:red;font-sixe:25px'>"+A+"</em>用戶已存在,此行記錄無法插入!請修改用戶再進行插入 <br>";   //若用戶存在,將已存在用戶信息打出,並提示此用戶無法插入   
                    continue;     
                }       
            }    
            Response.Write("<script>alert('Excle表導入成功!')</script>");       
            Label1.Text = error;     
        }      
        cn.Close(); 
    }
    protected bool check(string sqlcheck)

    {
        bool g;

        DataSet ds= com.GetDataSet(sqlcheck,"checkuss");
        string tmp  =  ds.Tables["checkuss"].Rows[0].ItemArray[0].ToString();

        if (tmp == "0")
        {
            g = true;
        }
        else
        {
            g = false;
        }
        return g;
    }
}

 

測試成功!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章