asp.net将本地Excel上传到服务器并把数据导入到数据库
前台代码:
<td class="formLabel">
批量修改:
</td>
<td class="formInput">
<asp:FileUpload ID="FileUpload1" runat="server"/>
<asp:Button ID="Button3" runat="server" OnClick="Button3_Click" Text="上傳" CssClass="button3"/>
</td>
后台代码
protected void Button3_Click(object sender, EventArgs e)
{
if (FileUpload1.HasFile == false)
{
WebUtils.Alert(this, "請選擇Excel文件!", "StorMaintain.aspx");
return; }
string IsXLS = System.IO.Path.GetExtension(FileUpload1.FileName).ToString().ToLower();
if (IsXLS != ".xls")
{ WebUtils.Alert(this, "只能選擇Excel文件!", "StorMaintain.aspx"); return;//当选择的不是Excel文件时,返回 }
SqlConnection conn = new SqlConnection("server=10.56.10.21;database=MTLBPM;uid=sa;pwd=@seshMTLK2");
conn.Open();
//string strpath = FileUpload1.PostedFile.FileName.ToString(); //string filename = FileUpload1.FileName;
//存取的文件路径
string strpath = this.Server.MapPath("..\\..\\Upload\\") + FileUpload1.FileName;
string filename = FileUpload1.FileName;
FileUpload1.PostedFile.SaveAs(strpath);
FileUpload1.Dispose(); DataSet ds = ExcelDs(strpath, filename); DataRow[] dr = ds.Tables[].Select(); int rowsnum = ds.Tables[].Rows.Count; if (rowsnum == )
{ WebUtils.Alert(this, "Excel表为空!", "StorMaintain.aspx"); //当Excel表为空时,对用户进行提示并跳转到相应页面 } else
{
for (int i = ; i < dr.Length; i++)
{
//Excel表所对应的栏位,只能是英文,中文栏位报错(不知道为什么?)
string tFacPartNum, tPrice, tPN3, tCustomer;
tFacPartNum = dr[i]["FacPartNum"].ToString().Trim();
tPrice = dr[i]["price"].ToString().Trim();
tPN3 = dr[i]["3PN"].ToString().Trim();
tCustomer = dr[i]["Customer"].ToString().Trim();
string sqlcheck = "select count(0) num from dbo.SD_StorAmount where FacPartNum='" + tFacPartNum + "'";
bool ch = check(sqlcheck);
//判断厂内料号是否存在
if (ch)
{
//为false则插入数据
string insertStr1 = "insert into dbo.SD_StorAmount(FacPartNum,Price,PN3,Customer) values('" + tFacPartNum + "','" + tPrice + "','" + tPN3 + "','" + tCustomer + "')";
SqlCommand cmd = new SqlCommand(insertStr1, conn); cmd.ExecuteNonQuery(); } else
{
string updateStr = "update dbo.SD_StorAmount set Price='" + tPrice + "' where FacPartNum='" + tFacPartNum + "'";
SqlCommand cmd = new SqlCommand(updateStr, conn);
cmd.ExecuteNonQuery();
} } try
{ WebUtils.Alert(this, "保存成功!", "StorMaintain.aspx"); }
catch (Exception ee)
{ WebUtils.Alert(this, ee.Message);
} }
conn.Close(); }
//导入功能
public DataSet ExcelDs(string filenameurl, string table)
{
// 此语句为Excel2003适用
string strConn = "Provider=Microsoft.Jet.OleDb.4.0;" + "data source=" + filenameurl + ";Extended Properties='Excel 8.0; HDR=YES; IMEX=1'"; OleDbConnection conn = new OleDbConnection(strConn); OleDbDataAdapter odda = new OleDbDataAdapter("select * from [Sheet1$]", conn); DataSet ds = new DataSet(); odda.Fill(ds, table);
return ds; }
//Check 方法判断是否存在记录
public bool check(string str)
{
//
using (SqlConnection conn = new SqlConnection("server=10.56.10.21;database=MTLBPM;uid=sa;pwd=@seshMTLK2"))
{ using (SqlCommand cmd = new SqlCommand(str, conn))
{ conn.Open(); //通过ExecuteScalar()方法返回count值 int n = (int)cmd.ExecuteScalar(); return n > ? false : true; } } }
在服务器上要确保已安装了Excel,并且具有读写目标文件夹的权限。
asp.net将本地Excel上传到服务器并把数据导入到数据库的更多相关文章
- Linux 将本地文件上传Linux服务器, 即ssh 命令上传本地文件
利用ssh传输文件 在linux下一般用scp这个命令来通过ssh传输文件. 1.从服务器上下载文件 scp username@servername:/path/filename /var/www ...
- Linux 将本地文件上传Linux服务器, 即ssh 命令上传本地文件
http://blog.csdn.net/rodulf/article/details/71169996 利用ssh传输文件 在linux下一般用scp这个命令来通过ssh传输文件. 1.从服务器上下 ...
- c#将本地文件上传至服务器(内网)
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...
- ubuntu中将本地文件上传到服务器
(1)在本地的终端下,而不是在服务器上.在本地的终端上才能将本地的文件拷入服务器. (2) scp -r localfile.txt username@192.168.0.1:/home/userna ...
- C# 把本地文件上传到服务器上,和从服务器上下载文件
方法一.通过Ajax方式上传文件(input file),使用FormData进行Ajax请求 <div > <input type="file" name=& ...
- iOS视频压缩存储至本地并上传至服务器-b
最近做了一个项目,我把其中的核心功能拿出来和大家分享一下,重点还是自己梳理一下. 这里关于视频转码存储我整理了两个方法,这两个方法都是针对相册内视频进行处理的. 1.该方法没有对视频进行压缩,只是将视 ...
- iOS视频压缩存储至本地并上传至服务器
最近做了一个项目,我把其中的核心功能拿出来和大家分享一下,重点还是自己梳理一下. 这里关于视频转码存储我整理了两个方法,这两个方法都是针对相册内视频进行处理的. 1.该方法没有对视频进行压缩,只是将视 ...
- Express+MySQL实现图片上传到服务器并把路径保存到数据库中
demo准备:mysql5.7.20 express4.0 处理图片文件的中间件Multer 先搭建服务器并展示html页面 const express = require("express ...
- 借助XShell,使用linux命令sz可以很方便的将服务器上的文件下载到本地,使用rz命令则是把本地文件上传到服务器。
rz 是将window文件传到linux服务器上,到执行rz命令的目录 sz 可以将linux文件发送到windows上,可以选择目录. https://www.google.com/ncr 登录一下 ...
随机推荐
- top工具
top 显示进程所占系统资源 能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器. top命令打印出了很多信息,包括系统负载(loadaverage).进程数(Tasks).c ...
- shell中的双引号,单引号,反引号
在shell中引号分为三种:单引号,双引号和反引号. 单引号 ‘ 由单引号括起来的字符都作为普通字符出现.特殊字符用单引号括起来以后,也会失去原有意义,而只作为普通字符解释.单引号用于保持引号内所有字 ...
- Razor与ASPX语法比较
- Spring MVC框架理解
原文链接:ITeye SpringMVC深度探险专栏 基本要素 1. 指定SpringMVC的入口程序(在web.xml中) <!-- Processes application request ...
- PHP-traits新特性详解
自 PHP 5.4.0 起,PHP 实现了代码复用的一个方法,称为 traits. Traits 是一种为类似 PHP 的单继承语言而准备的代码复用机制.Trait 为了减少单继承语言的限制,使开发人 ...
- asp.net mvc将html编译
从数据库查询出来的值,如果包含html标签并且通过MVC绑定页面的话,那么他会通过浏览器编译为字符串显示,所以我们有得在从新的转一次: HtmlString hh = new HtmlString(M ...
- extjs中第一次访问有效,第二次访问出现部分组件无法显示的,动态改变组件的label值的方法,ExtJs中组件最好少使用ID属性(推荐更多使用Name属性)
在公司做的一个OA项目中,曾经就遇到了这样的一个问题:(我是在jsp中的div中将js render到div中去的)第一次访问此界面的时候,formpanel上的组件能正常显示,不刷新整个页面的前提下 ...
- 12个你未必知道的CSS小知识
虽然CSS并不是一种很复杂的技术,但就算你是一个使用CSS多年的高手,仍然会有很多CSS用法/属性/属性值你从来没使用过,甚至从来没听说过. 1.CSS的color属性并非只能用于文本显示 对于CSS ...
- [原博客] POJ 1740 A New Stone Game
题目链接题意:有n堆石子,两人轮流操作,每次每个人可以从一堆中拿走若干个扔掉(必须),并且可以从中拿走一些分到别的有石子的堆里(可选),当一个人不能拿时这个人输.给定状态,问是否先手必胜. 我们参考普 ...
- 形形色色Node工程Angular2
最近项目要用的 一些无关紧要的文件夹, demo是一些示例, dist是webpack打包后发布的代码,server是用node启动服务,typings和tsconfig是一些ts配置. npm in ...