protected void Button1_Click(object sender, EventArgs e)
{
SqlConnection conn = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["LYConnectionString"].ConnectionString); ;//链接数据库
conn.Open();
try
{
string fileurl = typename(FileUpload1);//调用typename方法取得excel文件路径
DataSet ds = new DataSet();//取得数据集
ds = xsldata(fileurl);
int errorcount = ;//记录错误信息条数
int insertcount = ;//记录插入成功条数
int updatecount = ;//记录更新信息条数
for (int i = ; i < ds.Tables[].Rows.Count; i++)
{
string stuid = ds.Tables[].Rows[i][].ToString();
string stuname = ds.Tables[].Rows[i][].ToString();
string stusex = ds.Tables[].Rows[i][].ToString();
string zhuanye = ds.Tables[].Rows[i][].ToString();
string classname = ds.Tables[].Rows[i][].ToString();
Response.Write(stuid);
Response.Write(stuname);
Response.Write(stusex);
Response.Write(zhuanye);
Response.Write(classname); if (stuid != "" && stuname != "" && stusex != "" && zhuanye != "" && classname != "")
{
SqlCommand selectcmd = new SqlCommand("select count(*) from stud ", conn);
int count = Convert.ToInt32(selectcmd.ExecuteScalar());
if (count > )
{
SqlCommand selectcmd2 = new SqlCommand("select count(*) from stud where stuid='" + stuid + "'", conn);
int count2 = Convert.ToInt32(selectcmd2.ExecuteScalar());
if (count2 > )
{
SqlCommand updatecmd = new SqlCommand("update stud set stuname='" + stuname + "',stusex='" + stusex + "',zhuanye='" + zhuanye + "',classname='" + classname + "' where stuid='" + stuid + "'", conn);
updatecmd.ExecuteNonQuery();
updatecount++;
}
else
{
SqlCommand insertcmd = new SqlCommand("insert into stud values('" + stuid + "','" + stuname + "','" + stusex + "','" + zhuanye + "','" + classname + "')", conn);
insertcmd.ExecuteNonQuery();
insertcount++;
}
}
else
{
SqlCommand insertcmd = new SqlCommand("insert into stud values('" + stuid + "','" + stuname + "','" + stusex + "','" + zhuanye + "','" + classname + "')", conn);
insertcmd.ExecuteNonQuery(); //break; }
}
else
{
errorcount++;
}
}
Response.Write("<script language='javascript'>alert('" + insertcount + "条数据导入成功!" + updatecount + "条数据更新成功!" + errorcount + "条数据部分信息为空没有导入!');</script>");
}
//catch (Exception exp)
//{
// Response.Write("<script language='javascript'>alert('导入失败!');</script>");
//}
finally
{
conn.Close();
}
}
//判断上传文件,并保存文件
private String typename(FileUpload fileloads)
{
string fullfilename = fileloads.PostedFile.FileName;
string filename = fullfilename.Substring(fullfilename.LastIndexOf("\\\\") + );
string type = fullfilename.Substring(fullfilename.LastIndexOf(".") + );
string murl = "";
if (type == "xls")
{
fileloads.PostedFile.SaveAs(Server.MapPath("excel") + "\\\\" + filename);
murl = (Server.MapPath("excel") + "\\\\" + filename).ToString();
}
else
{
Response.Write("<script language='javascript'>alert('导入文件格式不对!');</script>"); }
return murl;
}
// 数据库导入数据集dataset
private DataSet xsldata(string filepath)
{
string strCon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filepath + ";Extended Properties='Excel 8.0;IMEX=1'";
//如果是导入excel2013版本,连接字符串则应该变成

string strCon = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + filepath + ";Extended Properties='Excel 12.0;IMEX=1'";

        System.Data.OleDb.OleDbConnection Conn = new System.Data.OleDb.OleDbConnection(strCon);
string strCom = "SELECT * FROM [Sheet1$]";
Conn.Open();
System.Data.OleDb.OleDbDataAdapter myCommand = new System.Data.OleDb.OleDbDataAdapter(strCom, Conn);
DataSet ds = new DataSet();
myCommand.Fill(ds, "[Sheet1$]");
Conn.Close();
return ds;
}
}

asp.net 中excel 导入数据库的更多相关文章

  1. ASP.NET 将Excel导入数据库

    将Excel导入数据库大致流程:  Excel数据->DataSet->数据库 需要做的准备:1.FileUpload控件一个,按钮一个,如果需要即时显示那么GridView或DataGr ...

  2. excel 导入数据库 / SSIS 中 excel data source --64位excel 版本不支持-- solution

    当本地安装的excel(2013版) 是64-bit时:出现的以下两种错误 解决: 1. excel 导入数据库 , 如果文件是2007则会出现:“The 'Microsoft.ACE.OLEDB.1 ...

  3. 将Excel中数据导入数据库(三)

    上篇文章将Excel中数据导入数据库时,将从Excel读入的数据均转换成了数据库相应字段的类型,其实这是没有必要的,因为对于数据库各种类型的插入,均可以字符串格式插入.比如表WQ_SWMSAR_A字段 ...

  4. 将Excel中数据导入数据库(二)

    在上篇文章中介绍到将Excel中数据导入到数据库中,但上篇文章例子只出现了nvachar类型,且数据量很小.今天碰到将Excel中数据导入数据库中的Excel有6419行,其中每行均有48个字段,有i ...

  5. 将Excel中数据导入数据库(一)

    在工作中经常要将Excel中数据导入数据库,这里介绍一种方法. 假如Excel中的数据如下: 数据库建表如下: 其中Id为自增字段: Excel中数据导入数据库帮助类如下: using System; ...

  6. Java实现将Excel导入数据库和从数据库中导出为Excel

    实现的功能: 用Java实现从Excel导入数据库,如果存在就更新 将数据库中的数据导出为Excel 1.添加jxl.jar mysql-connector-java.1.7-bin.jar包到项目的 ...

  7. C# ASP.NET CSV文件导入数据库

    原文:C# ASP.NET CSV文件导入数据库 using System; using System.Collections.Generic; using System.Text; using Sy ...

  8. 2014-08-01 ASP.NET中对SQLite数据库的操作——ADO.NET

    今天是在吾索实习的第18天.我主要学习了如何在ASP.NET中对SQLite数据库的操作,其基本操作如下: 添加引用System.Data.SQLite.dll(PS:在网页里面任意找到适合的.NET ...

  9. 记录-java(jxl) Excel导入数据库

    本内容主要包括(文件上传.excel2003数据导入数据库)excel导入数据库功能需要jxl  jar包支持 下面是文件上传的前端测试代码 <%@ page language="ja ...

随机推荐

  1. Delphi XE5 常用功具与下载

    1.Delphi XE5 正式版 http://altd.embarcadero.com/download/radstudio/xe5/delphicbuilder_xe5_win.iso http: ...

  2. JPA主键策略

    JPA 自带的主键策略有 4 种,在枚举 javax.persistence.GenerationType 中,分别是:TABLE.SEQUENCE.IDENTITY.AUTO. TABLE:通过表产 ...

  3. SQLite DBHelp

    c#连接SQLite SQLite这个精巧的小数据库,无需安装软件,只需要一个System.Data.SQLite.DLL文件即可操作SQLite数据库.SQLite是一个开源数据库,现在已变得越来越 ...

  4. MySql实现远程连接

    MySql实现远程连接 1.进入mysql,创建一个新用户root,密码为root: 格式:grant 权限 on 数据库名.表名 to 用户@登录主机 identified by "用户密 ...

  5. jsp值传到后台Struts2中的action三种方法

    Action接收表单传递过来的参数有3种方法: 如,登陆表单login.jsp: <form action="login" method="post" n ...

  6. 导出DC列表

    $DomainName = (gwmi win32_computersystem).Domain$dn0 = $DomainName.Split(".")[0]$dn1 = $Do ...

  7. ORM之二:核心接口与扩展操作

    一.数据库提供者接口 /// <summary> /// 数据库提供者 /// </summary> public interface IDbProvider : IDispo ...

  8. esui控件validatebox 通过正则判断输入 json传值

    <td> @Html.TextBoxFor(m => m.ActualInvoiceFee, new { @id = "txtActualInvoiceFee", ...

  9. iOS之宏定义#define

    最基本的宏定义用法 #define aaa bbb 表示用aaa替换bbb的内容. 宏作用范围 宏的作用范围是在当前文件内, 如果需要作用于其他类(如在类b调用类a已定义宏),那么需要在类b引入类a的 ...

  10. 基于反射实现自己主动化restful开发

    [Author]: kwu 基于反射实现自己主动化restful开发,通用的仅仅须要写查询数据库的sql.并增加相应的javabean实现的高速restful服务的开发. 1.编写数据库的查询sql. ...