Excel导入SQL数据库完整代码
protected void studentload_Click(object sender, EventArgs e)
{//批量添加学生信息
SqlConnection conn = DB.dataBaseConn();//链接数据库
conn.Open();
try
{
string fileurl = typename(studentFileUpload);//调用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();
if (stuid != "" && stuname != "" && stusex != "" && zhuanye != "" && classname != "")
{
SqlCommand selectcmd = new SqlCommand("select count(*) from zy_class where zhuanye='" + zhuanye + "'and classname='" + classname + "'", 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='" + zhuanyei + "',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
{
Response.Write("<script language='javascript'>alert('专业或班级信息有错!导入失败!请检查!');</script>");
break; }
}
else
{
errorcount++;
}
}
Response.Write("<script language='javascript'>alert('" + insertcount + "条数据导入成功!" + updatecount + "条数据更新成功!" + errorcount + "条数据部分信息为空没有导入!');</script>");
}
catch (Exception e)
{
Response.Write("<script language='javascript'>alert('导入失败!');</script>");
}
finally
{
conn.Close();
}
} //把EXCEL文件上传到服务器并返回文件路径 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;
} // 把excel数据读入dataset返回l数据集 private DataSet xsldata(string filepath)
{
string strCon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filepath + ";Extended Properties='Excel 8.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;
} 本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/HelloXiaoyu/archive/2009/01/15/3790134.aspx

转:Excel导入SQL数据库完整代码的更多相关文章

  1. excel导入sql server 文本被截断,或者一个或多个字符在目标代码页中没有匹配项 错误处理

    excel导入sql server 文本被截断,或者一个或多个字符在目标代码页中没有匹配项 错误处理方法: 方案1:修改注册表 出现文本被截断的原因是SQL Server的导入导出为了确定数据表的字段 ...

  2. 把Excel导入SQL server时出现错误

    在把Excel导入SQL server时出现“未在本地计算机上注册 Microsoft.ACE.OLEDB.12.0 ”该 错误信息:未在本地计算机上注册“microsoft.ACE.oledb.12 ...

  3. Excel 导入 Sql Server出错——“文本被截断,或者一个或多个字符在目标代码页中没有匹配项”错误的解决

    有人说应该先转成Access, 再转到Sql Server. 其实用处并不大, 要截断的还是被截断了. 原因是,SQL Server的导入导出为了确定数据表的字段类型,取excel文件的前8行来判别. ...

  4. ASP.NET Excel导入Sql Server数据库(转)

    先看界面图 实现的基本思想: 1,先使用FileUpload控件fuload将Excel文件上传到服务器上得某一个文件夹. 2,使用OleDb将已经上传到服务器上的Excel文件读出来,这里将Exce ...

  5. 将Excel导入SQL Server 只能导入数字,其他数据变为NULL怎么解决?

    先新建一个TXT文件,把数据粘贴进去 再新建一个Excel文件,在菜单栏中选Data再选From Text 找到txt文件,点import 一定要选Text 点Finish,点OK. 接下来在往数据库 ...

  6. C#中excel导入sql

    using Microsoft.Office.Interop.Excel; public int ledinExcel(string file, object sender, EventArgs e) ...

  7. EXCEL 导入SQL SERVER 方法

    1.注意:确认是否已安装 AccessDatabaseEngine.exe 2.可视化按提示操作.

  8. 土制Excel导入导出及相关问题探讨

    转载请注明出处https://www.cnblogs.com/funnyzpc/p/10392085.html 新的一年,又一个开始,不见收获,却见年龄,好一个猪年,待我先来一首里尔克的诗: < ...

  9. thinkphp-PHP实现Excel导入 导出功能

    Excel导出 //功能:导出题库模板 public function get_contract_ex() { ob_get_clean(); header("Content-Typ:tex ...

随机推荐

  1. maven 引入jar包

    问题描述:自己的项目需要引入jar包,已知jar包名字,怎么在maven中添加依赖,使其能自动导入? 第一次使用:本文作为记录! 首先,找到maven仓库的网址!如下: http://mvnrepos ...

  2. java poi分批次导入Excel

    最近换了新工作,公司要求导入Excel要分批次导入,并且是多线程的情况下执行导入,查了很多资料,没看到比较复合的,就打算自己写一个吧,可能有不足,希望指出. 上面说到多线程,这边就不贴出代码了,具体思 ...

  3. linux命令详解(一)

    linux命令 在使用linux环境进行工作和学习中,我们更多时间是手指在键盘上跳动.这里,我们就来说linux命令使用吧在linux环境中,显然不能记下所有的命令及其使用规则,那么这时,man,he ...

  4. 个人知识管理系统Version1.0开发记录(02)

    第 一 步 做 什 么 我们该如何入手呢?先来看看目前常用的三个方法. 1.从事物产生的源头出发,层层推进,步步验证,最后开花结果.这种方法经常用于科研项目,或者三期以后的工程,国家政府项目用的较多. ...

  5. 【待填坑】ajax问题

    原生xhr怎么写? 怎么处理回调? 问:http状态码常见有哪些? 问:302是啥?304是啥?什么时候会返回304?你刚刚说浏览器缓存,具体缓存机制是怎么样的? 问:你刚刚说的是发起一个get请求, ...

  6. laravel怎么获取到public路径

    app_path() app_path函数返回app目录的绝对路径: $path = app_path(); 你还可以使用app_path函数为相对于app目录的给定文件生成绝对路径: $path = ...

  7. Java复习4.数组初始化.

    Java复习4.Java中的数组声明方式  20131004 1.数组声明和初始化, 数组元素和变量一样,可以在定义的时候i进行初始化.数组元素的初始化工作实在编译阶段完成的,可以减少运行时间. 在初 ...

  8. background-size: contain 与cover的区别,以及ie78的兼容写法

    一:background-size: contain 与cover的区别: 作用: 都是将图片以**相同宽高比**缩放以适应整个容器的宽高. 不同之处在于: 1.  在no-repeat情况下,如果容 ...

  9. 在IE中MVC控制器中返回JSON格式的数据时提示下载

    最近做项目时,视图中用jquery.form.js异步提交表单时,接收的是JSON格式的数据,但是奇怪的是在IE中提示下载文件,其他浏览器中一切正常,下载后,里面的内容就是在控制器中返回的数据.代码如 ...

  10. 两个init方法的区别

    容器创建了Servlet实例后,它将调用实例的init(ServletConfig)方法初始化Servlet.该方法的参数ServletConfig对象包含了在WEB应用程序的部署描述文件中指定的初始 ...