using System;
using System.Data;
using System.Configuration;
using System.Collections;
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.Data.SqlClient;
using System.Data.OleDb;
using System.Text;
using JJoobb.Web;
using System.IO;
public partial class Admin_ManageClient_dd : System.Web.UI.Page
{
string strConn = SiteSetting.ConnectionString;
string sqlSelectALL = SiteSetting.sqlSelALL;
string exToDB = SiteSetting.ExToDB;
protected void Page_Load(object sender, EventArgs e)
{
}
protected void readFromDB_Click(object sender, EventArgs e)
{
Bind();
}
public void btnOut_Click(object sender, EventArgs e)
{
try
{
CreateExcel(getds());
Response.Write("<script>alert('数据导出成功!')</script>");
}
catch
{
Response.Write("<script>alert('数据导出失败!')</script>");
}
}
public void CreateExcel(DataSet ds)
{
string outPutPath = SiteSetting.OutPutPath + DateTime.Now.ToString("yyyyMMddHHmmss-") + SiteSetting.FileName;
FileStream file = new FileStream(outPutPath, FileMode.Create);
StreamWriter sw = new StreamWriter(file, Encoding.Default);//设置编码为当面页面编码
string colHeaders = "", ls_item = ""; //定义表对象与行对象,同时用DataSet对其值进行初始化
DataTable dt = ds.Tables[0]; DataRow[] myRow = dt.Select();//可以类似dt.Select("id>10")之形式达到数据筛选目的
int i = 0; int cl = dt.Columns.Count; //取得数据表各列标题,各标题之间以\t分割,最后一个列标题后加回车符
for (i = 0; i < cl; i++)
{
if (i == (cl - 1))//最后一列,加\n
{
colHeaders += dt.Columns[i].Caption.ToString() + "\n";
}
else
{
colHeaders += dt.Columns[i].Caption.ToString() + "\t";
}
}
sw.Write(colHeaders);
foreach (DataRow row in myRow)
{ //当前行数据写入输出流,并且置空ls_item以便下行数据
for (i = 0; i < cl; i++)
{
if (i == (cl - 1))
{
ls_item += row[i].ToString() + "\n";
}
else
{
ls_item += row[i].ToString() + "\t";
}
}
sw.Write(ls_item);
ls_item = "";
}
sw.Flush();
sw.Close();
file.Close();
}
private DataSet getds()
{
SqlConnection conns = new SqlConnection(strConn);
SqlDataAdapter da = new SqlDataAdapter(sqlSelectALL, conns);
DataSet ds = new DataSet();
da.Fill(ds);
conns.Close();
conns.Dispose();
return ds;
}
//绑定数据
public void Bind()
{
DataSet ds = new DataSet();
using (SqlConnection conn = new SqlConnection())
{
SqlDataAdapter sda = new SqlDataAdapter(sqlSelectALL, strConn);
sda.Fill(ds, "Client");
}
GridView1.DataSource = ds.Tables["Client"];
GridView1.DataBind();
} //导入数据
protected void Import_Click(object sender, EventArgs e)
{
string getErrMsg = "";
DataSet excelDs = new DataSet();
if (FileUpload1.PostedFile.FileName == "")
{
Response.Write("<script language=javascript>alert('请选择要上传的文件!');</script>");
return;
}
//从Excel读取数据
string filePath = FileUpload1.PostedFile.FileName;
string connString = "Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties=\"Excel 8.0;HDR=Yes;IMEX=1\";Data Source=" + filePath;
OleDbConnection excelConn = new OleDbConnection(connString);
OleDbDataAdapter ExcelDA = new OleDbDataAdapter("SELECT * FROM [Sheet1$]", excelConn);
try
{
ExcelDA.Fill(excelDs, "Client");
}
catch (Exception err)
{
Response.Write(err.Message);
}
finally
{
excelConn.Close();
excelConn = null;
}
//将数据写入数据库
if (excelDs.Tables[0].Rows.Count != 0)
{
SqlConnection sqlConn = new SqlConnection(strConn);
sqlConn.Open(); SqlCommand myCommand = sqlConn.CreateCommand();
SqlTransaction myTrans = sqlConn.BeginTransaction();
myCommand.Transaction = myTrans;
try
{
for (int i = 0; i < excelDs.Tables[0].Rows.Count; i++)
{
string sql = "insert into Client( name, fullname,email) values('" + excelDs.Tables[0].Rows[i]["姓名"].ToString() + "','" + excelDs.Tables[0].Rows[i]["昵称"].ToString() + "','" + excelDs.Tables[0].Rows[i]["邮箱"].ToString() + "')";
myCommand.CommandText = sql;
myCommand.ExecuteNonQuery();
}
myTrans.Commit();
}
catch (Exception ex)
{
getErrMsg = ex.Message.ToString();
Response.Write(ex.Message.ToString()); myTrans.Rollback();
}
finally
{
sqlConn.Close(); sqlConn = null;
}
} //返回提示信息
if (getErrMsg == "" || getErrMsg == null)
{
Response.Write("<script language='Javascript'>alert('导入成功!')</script>");
Bind();
}
else
{
Response.Write("<script language='Javascript'>alert('导入失败!')</script>");
return;
}
}
}
前台aspx页面
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="dd.aspx.cs" Inherits="Admin_ManageClient_dd" %>
<!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>导入导出页面</title>
</head>
<body>
<form id="form1" runat="server">
<table style="width: 858px">
<tr>
<td style="width: 334px">
<asp:Button ID="readFromDB" runat="server" OnClick="readFromDB_Click" Text="从数据库读取数据" />
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="True" BackColor="White" BorderColor="#E7E7FF" BorderStyle="None" BorderWidth="1px" CellPadding="3" Font-Names="Arial" Font-Size="12px" GridLines="Horizontal" RowStyle-HorizontalAlign="Center" Width="98%">
<FooterStyle BackColor="#B5C7DE" ForeColor="#4A3C8C" /> <RowStyle BackColor="#E7E7FF" ForeColor="#4A3C8C" HorizontalAlign="Center" />
<SelectedRowStyle BackColor="#738A9C" Font-Bold="True" ForeColor="#F7F7F7" />
<PagerStyle BackColor="#E7E7FF" ForeColor="#4A3C8C" HorizontalAlign="Right" />
<HeaderStyle BackColor="#4A3C8C" Font-Bold="True" ForeColor="#F7F7F7" HorizontalAlign="Center" />
<AlternatingRowStyle BackColor="#F7F7F7" /> </asp:GridView>
<asp:FileUpload ID="FileUpload1" runat="server" />
<asp:Button ID="Import" runat="server" OnClick="Import_Click" Text="导入" />
<asp:Button ID="output" runat="server" OnClick="btnOut_Click" Text="导出" />
</td>
</tr>
</table>
</form>
</body>
</html>