ASPX
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="TransferExceltoSQL._Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<input id="File1" type="file" runat="server" />
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False">
<Columns>
<asp:boundfield DataField="fid"></asp:boundfield>
<asp:boundfield DataField="fname"></asp:boundfield>
<asp:boundfield DataField="fdatetime"></asp:boundfield>
</Columns>
</asp:GridView>
<br />
<asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click" />
</div>
</form>
</body>
</html>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<input id="File1" type="file" runat="server" />
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False">
<Columns>
<asp:boundfield DataField="fid"></asp:boundfield>
<asp:boundfield DataField="fname"></asp:boundfield>
<asp:boundfield DataField="fdatetime"></asp:boundfield>
</Columns>
</asp:GridView>
<br />
<asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click" />
</div>
</form>
</body>
</html>
.ASPX.CS
using System;
using System.Data;
using System.Data.OleDb;
using System.Data.SqlClient;
using System.Configuration;
using System.Collections;
using System.Linq;
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 System.Xml.Linq;
namespace TransferExceltoSQL
{
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
}
}
protected void Button1_Click(object sender, EventArgs e)
{
CreateTable();
}
public void CreateTable()
{
string sConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" +"Data Source=" + File1.PostedFile.FileName.ToString() + ";" +"Extended Properties=Excel 8.0;";
OleDbConnection objConn = new OleDbConnection(sConnectionString);
objConn.Open();
OleDbCommand objCmdSelect = new OleDbCommand("SELECT fid, fname, fdatetime FROM [Sheet1$]", objConn);
OleDbDataAdapter objAdapter1 = new OleDbDataAdapter();
objAdapter1.SelectCommand = objCmdSelect;
DataSet objDataset1 = new DataSet();
objAdapter1.Fill(objDataset1, "test");
this.GridView1.DataSource = objDataset1.Tables[0].DefaultView;
this.GridView1.DataBind();
DataTable dt = objDataset1.Tables[0];
DataView myView = new DataView(dt);
SqlConnection conn;
string dns = System.Configuration.ConfigurationManager.AppSettings["ConnectionString"];
conn = new SqlConnection(dns);
SqlCommand cmd = conn.CreateCommand();
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = "sp_transextosql";
int count = 0;
try
{
foreach (DataRowView myDrv in myView)
{
count++;
if (conn.State.ToString() != "Closed")
conn.Close();
cmd.Parameters.Clear();
SqlParameter paraid = cmd.Parameters.Add("@fid", SqlDbType.Int);
SqlParameter paraname = cmd.Parameters.Add("@fname", SqlDbType.NVarChar, (50));
SqlParameter paradatetime = cmd.Parameters.Add("@fdatetime", SqlDbType.DateTime);
paraid.Direction = ParameterDirection.Input;
paraname.Direction = ParameterDirection.Input;
paradatetime.Direction = ParameterDirection.Input;
paraid.Value = Convert.ToInt32(myDrv[0]);
paraname.Value = Convert.ToString(myDrv[1].ToString());
paradatetime.Value = Convert.ToDateTime(myDrv[2]);
conn.Open();
cmd.ExecuteNonQuery();
}
}
catch (Exception ex)
{
Page.Response.Write("alert('第" + count.ToString() + "条数据出错!');");
objConn.Close();
throw ex;
}
finally
{
objConn.Close();
}
}
}
}
using System.Data;
using System.Data.OleDb;
using System.Data.SqlClient;
using System.Configuration;
using System.Collections;
using System.Linq;
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 System.Xml.Linq;
namespace TransferExceltoSQL
{
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
}
}
protected void Button1_Click(object sender, EventArgs e)
{
CreateTable();
}
public void CreateTable()
{
string sConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" +"Data Source=" + File1.PostedFile.FileName.ToString() + ";" +"Extended Properties=Excel 8.0;";
OleDbConnection objConn = new OleDbConnection(sConnectionString);
objConn.Open();
OleDbCommand objCmdSelect = new OleDbCommand("SELECT fid, fname, fdatetime FROM [Sheet1$]", objConn);
OleDbDataAdapter objAdapter1 = new OleDbDataAdapter();
objAdapter1.SelectCommand = objCmdSelect;
DataSet objDataset1 = new DataSet();
objAdapter1.Fill(objDataset1, "test");
this.GridView1.DataSource = objDataset1.Tables[0].DefaultView;
this.GridView1.DataBind();
DataTable dt = objDataset1.Tables[0];
DataView myView = new DataView(dt);
SqlConnection conn;
string dns = System.Configuration.ConfigurationManager.AppSettings["ConnectionString"];
conn = new SqlConnection(dns);
SqlCommand cmd = conn.CreateCommand();
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = "sp_transextosql";
int count = 0;
try
{
foreach (DataRowView myDrv in myView)
{
count++;
if (conn.State.ToString() != "Closed")
conn.Close();
cmd.Parameters.Clear();
SqlParameter paraid = cmd.Parameters.Add("@fid", SqlDbType.Int);
SqlParameter paraname = cmd.Parameters.Add("@fname", SqlDbType.NVarChar, (50));
SqlParameter paradatetime = cmd.Parameters.Add("@fdatetime", SqlDbType.DateTime);
paraid.Direction = ParameterDirection.Input;
paraname.Direction = ParameterDirection.Input;
paradatetime.Direction = ParameterDirection.Input;
paraid.Value = Convert.ToInt32(myDrv[0]);
paraname.Value = Convert.ToString(myDrv[1].ToString());
paradatetime.Value = Convert.ToDateTime(myDrv[2]);
conn.Open();
cmd.ExecuteNonQuery();
}
}
catch (Exception ex)
{
Page.Response.Write("alert('第" + count.ToString() + "条数据出错!');");
objConn.Close();
throw ex;
}
finally
{
objConn.Close();
}
}
}
}
SQL PROC
CREATE proc sp_transextosql
(@fid int,
@fname nvarchar(50),
@fdatetime datetime)
as
insert into t_TransExcelToSQL(f_id, f_name, f_datetime) values(@fid,@fname,@fdatetime)
GO
(@fid int,
@fname nvarchar(50),
@fdatetime datetime)
as
insert into t_TransExcelToSQL(f_id, f_name, f_datetime) values(@fid,@fname,@fdatetime)
GO