將Excel文件導入到Oracle數據庫中

 前臺:

  1. <%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>
  2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml" >
  4. <head runat="server">
  5.     <title>將Excel數據寫入到Oracle數據庫中</title>
  6. </head>
  7. <body>
  8.     <form id="form1" runat="server">
  9.     <div align="center">
  10.         <table align="center" cellpadding="0" cellspacing="0" border="1" bordercolor="honeydew">
  11.             <tr>
  12.                 <td style="width: 600px" colspan="2" bgcolor="lime">
  13.                     <strong>將EXCEL中的數據導入到Oracle數據庫中示例 </strong>
  14.                 </td>                
  15.             </tr>
  16.             <tr>
  17.                 <td>
  18.                     測試Excel中的數據是否讀取成功
  19.                     <asp:DataGrid ID="DataGrid1" runat="server">
  20.                     </asp:DataGrid>
  21.                 </td>
  22.                 <td style="width: 100px; height: 252px;">
  23.                     測試Excel中的數據是否成功導入到Oracle數據中
  24.                     <asp:GridView ID="GridView1" runat="server" CellPadding="4" ForeColor="#333333" GridLines="None">
  25.                         <FooterStyle BackColor="#990000" Font-Bold="True" ForeColor="White" />
  26.                         <RowStyle BackColor="#FFFBD6" ForeColor="#333333" />
  27.                         <SelectedRowStyle BackColor="#FFCC66" Font-Bold="True" ForeColor="Navy" />
  28.                         <PagerStyle BackColor="#FFCC66" ForeColor="#333333" HorizontalAlign="Center" />
  29.                         <HeaderStyle BackColor="#990000" Font-Bold="True" ForeColor="White" />
  30.                         <AlternatingRowStyle BackColor="White" />
  31.                     </asp:GridView>
  32.                 </td>
  33.             </tr>
  34.             <tr>
  35.                 <td style="width: 100px; height: 19px;">
  36.                     <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Excel數據寫入Oracle中" />
  37.                     <asp:Label ID="Label1" runat="server" Width="232px" Visible="False">沒有成功導入所有數據或是有部分數據重複!</asp:Label></td>
  38.                 <td style="width: 100px; height: 19px;">
  39.                     <asp:Button ID="Button2" runat="server" OnClick="Button2_Click" Text="Oracle中顯示Excel數據" /></td>
  40.             </tr>
  41.         </table>    
  42.     </div>
  43.     </form>
  44. </body>
  45. </html>

後臺:

  1. using System;
  2. using System.Data;
  3. using System.Configuration;
  4. using System.Web;
  5. using System.Web.Security;
  6. using System.Web.UI;
  7. using System.Web.UI.WebControls;
  8. using System.Web.UI.WebControls.WebParts;
  9. using System.Web.UI.HtmlControls;
  10. using System.Data.OracleClient;
  11. using System.Data.OleDb;
  12. public partial class _Default : System.Web.UI.Page 
  13. {
  14.     protected void Page_Load(object sender, EventArgs e)
  15.     {
  16.     }
  17.     public void LoadData(string StyleSheet)
  18.     {
  19.         string strCon = System.Configuration.ConfigurationManager.ConnectionStrings["ExcelConnection"].ConnectionString;//Excel的連接字符串
  20.         OleDbConnection myConn = new OleDbConnection(strCon);//創建一個OLEDBC的鏈接
  21.         myConn.Open();//打開數據庫的連接,得到一個數據集
  22.         DataSet myDataSet = new DataSet();
  23.         string StrSql = "Select * From [" + StyleSheet + "$]";
  24.         OleDbDataAdapter myCommand = new OleDbDataAdapter(StrSql, myConn);
  25.         myCommand.Fill(myDataSet, "[" + StyleSheet + "$]");
  26.         myCommand.Dispose();
  27.         DataTable dt = myDataSet.Tables["[" + StyleSheet + "$]"];
  28.         myConn.Close();//關閉數據庫連接
  29.         myCommand.Dispose();
  30.         DataGrid1.DataSource = dt.DefaultView;//用來測試Excel中的數據是否讀取成功
  31.         DataGrid1.DataBind();
  32.         string strConn = System.Configuration.ConfigurationManager.ConnectionStrings["OracleConnection"].ConnectionString;
  33.         OracleConnection conn = new OracleConnection(strConn);
  34.         
  35.         for (int j = 0; j < dt.Rows.Count; j++)
  36.         {
  37.             conn.Open();
  38.             OracleCommand mycom = new OracleCommand("Select count (*) from Usersdb where UserID='" + dt.Rows[j][0].ToString() + "'", conn);
  39.             int count = Convert.ToInt32(mycom.ExecuteScalar());
  40.             if (count > 0)
  41.             {
  42.                 Response.Write("<script>alert('對不起!您已經轉換了相同的數據!');</script>");
  43.             }
  44.             else
  45.             {
  46.                 string UserID = dt.Rows[j][0].ToString();
  47.                 string UserName = dt.Rows[j][1].ToString();
  48.                 string Title = dt.Rows[j][2].ToString();
  49.                 string Sal = dt.Rows[j][3].ToString();
  50.                 string strSql = "Insert Into Usersdb(UserID,UserName,Title,Sal) Values('" + UserID + "','" + UserName + "','" + Title + "','" + Sal + "')";
  51.                 OracleCommand comm = new OracleCommand(strSql, conn);
  52.                 comm.ExecuteNonQuery();
  53.                 if (j == dt.Rows.Count - 1)
  54.                 {
  55.                     Label1.Visible = true;
  56.                     Label1.Text = "所有數據成功導入!";
  57.                 }
  58.                 else
  59.                 {
  60.                     Label1.Visible = true;
  61.                 }
  62.             }
  63.             conn.Close();
  64.         }        
  65.     }
  66.     protected void Button1_Click(object sender, EventArgs e)
  67.     {
  68.         string StyleSheet = "Sheet1";
  69.         LoadData(StyleSheet);
  70.     }
  71.     protected void Button2_Click(object sender, EventArgs e)
  72.     {
  73.         string strConn = System.Configuration.ConfigurationManager.ConnectionStrings["OracleConnection"].ConnectionString;
  74.         string sqlstr = "Select * From Usersdb";
  75.         OracleConnection conn = new OracleConnection(strConn);
  76.         OracleDataAdapter myda = new OracleDataAdapter(sqlstr, strConn);
  77.         DataSet ds = new DataSet();
  78.         conn.Open();
  79.         myda.Fill(ds, "Usersdb");
  80.         GridView1.DataSource = ds;
  81.         GridView1.DataBind();
  82.         conn.Close();
  83.     }
  84. }

web.config文件:

  1. <?xml version="1.0"?>
  2. <!-- 
  3.     注意: 除了手動編輯此文件以外,您還可以使用 
  4.     Web 管理工具來配置應用程序的設置。可以使用 Visual Studio 中的
  5.      “網站”->“Asp.Net 配置”選項。
  6.     設置和註釋的完整列表在 
  7.     machine.config.comments 中,該文件通常位於 
  8.     /Windows/Microsoft.Net/Framework/v2.x/Config 中
  9. -->
  10. <configuration>
  11.     <appSettings/>
  12.   <connectionStrings>
  13.     <add name="ExcelConnection" connectionString="Data Source=C:/Inetpub/wwwroot/ASP.NET_TO_Oracle/ExcelToOracle/ExcelToOracle.xls;Extended Properties=Excel 8.0;Provider=Microsoft.Jet.OLEDB.4.0"/>
  14.     <add name="OracleConnection" connectionString="Data Source=orcl_202.201.244.121;Persist Security Info=True;User ID=scott;Pwd=sde;Unicode=True" providerName="System.Data.OracleClient"/>
  15.   </connectionStrings>
  16.     <system.web>
  17.         <!-- 
  18.             設置 compilation debug="true" 將調試符號插入
  19.             已編譯的頁面中。但由於這會 
  20.             影響性能,因此只在開發過程中將此值 
  21.             設置爲 true
  22.         -->
  23.         <compilation debug="true">
  24.             <assemblies>
  25.                 <add assembly="System.Data.OracleClient, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/></assemblies></compilation>
  26.         <!--
  27.             通過 <authentication> 節可以配置 ASP.NET 使用的 
  28.             安全身份驗證模式,
  29.             以標識傳入的用戶。 
  30.         -->
  31.         <authentication mode="Windows"/>
  32.         <!--
  33.             如果在執行請求的過程中出現未處理的錯誤,
  34.             則通過 <customErrors> 節可以配置相應的處理步驟。具體說來,
  35.             開發人員通過該節可以配置
  36.             要顯示的 html 錯誤頁
  37.             以代替錯誤堆棧跟蹤。
  38.         <customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">
  39.             <error statusCode="403" redirect="NoAccess.htm" />
  40.             <error statusCode="404" redirect="FileNotFound.htm" />
  41.         </customErrors>
  42.         -->
  43.     </system.web>
  44. </configuration>

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