開發環境 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;
}
}
測試成功!