程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> .NET實例教程 >> 關於EXCEL數據上傳到SQL SERVER中的簡單方法!

關於EXCEL數據上傳到SQL SERVER中的簡單方法!

編輯:.NET實例教程

Excel數據上傳到SQL Server中的方法需要注意到三點!


注意點一:要把Excel數據上傳到SQL Server中必須提前把Excel傳到服務器上.

做法: 在ASP.Net環境中,添加一個FileUpload上傳控件

後台代碼的E.X:
                  if (FileUpload1.HasFile)     //如果用戶確實選擇了上傳控件的浏覽按鈕,浏覽文件成功.
                  {
                   this.FileUpload1.SaveAs("E:\\Temp\\" + FileUpload1.FileName);  //保存到服務器的目錄,需要根據服務器具體情況修改FileUpload1.FileName會自動獲取上傳文件名.

                  }
                 //OK成功上傳到服務器的E:\Temp目錄下(自己寫的時候注意錯誤處理,和異常處理啊,很重要的).

注意點二: SQL Server 服務器中的表的結構(字段)要與要上傳來的Excel格式順序等相同.

保存到服務器的關鍵代碼如下E.X(SQL 語句):

insert   into   EmployeesCheck   select   *   from    OPENROWSET('MICROSOFT.JET.OLEDB.4.0'    ,'Excel 8.0;hdr=yes;database=E:\\Temp\\" + FileUpload1.FileName + "',TeenIE$)


//  EmployeesCheck  是我在SQL Server 中的數據接受表,hdr=yes 表示Excel內容第一行作為內容字段而不是字段列
   TeenIE是我Excel的當前頁的名稱(注意這個一定要寫對,否則的話會出錯,另外要在名字後面家$這個東西)
  
解除SQL阻止:
SQL Server 阻止了對組件 'Ad Hoc Distributed QuerIEs' 的 STATEMENT'OpenRowset/OpenDatasource' 的訪問,因為此組件已作為此服務器安全配置的一部分而被關閉。系統管理員可以通過使用 sp_configure 啟用 'Ad Hoc Distributed Queries'。有關啟用 'Ad Hoc Distributed QuerIEs' 的詳細信息,請參閱 SQL Server 聯機叢書中的 "外圍應用配置器"。
因為SQL2005默認是沒有開啟'Ad Hoc Distributed QuerIEs' 組件,開啟方法如下

EXEC sp_configure 'show advanced options', 1
GO
RECONFIGURE
GO
EXEC sp_configure 'Ad Hoc Distributed QuerIEs', 1
GO
RECONFIGURE
GO

哈哈!就說到這些把 這個比較簡單 能對付一般的應用了,因為一般用Excel數據的都是公司內部數據處理,所以完全夠應付了,
但是如果是商業化或者專業的網站讓任何普通用戶上傳EXCEL的話就不大合適了,畢竟你不能強烈要求所有用戶Excel的表的
數據頁的名字都叫TeenIE 呵呵,網上還有一種很麻煩的SQL語句(都是參數的形式)可以解決這個問題,呵呵 大家無妨去參考一下!

【處理這類問題,重點的不是上傳和實現技術,而是錯誤處理,任何失誤都會導致數據遭到XX呵呵】

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved