前台代码: 

  <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上传到服务器并把数据导入到数据库的更多相关文章

  1. Linux 将本地文件上传Linux服务器, 即ssh 命令上传本地文件

    利用ssh传输文件   在linux下一般用scp这个命令来通过ssh传输文件. 1.从服务器上下载文件 scp username@servername:/path/filename /var/www ...

  2. Linux 将本地文件上传Linux服务器, 即ssh 命令上传本地文件

    http://blog.csdn.net/rodulf/article/details/71169996 利用ssh传输文件 在linux下一般用scp这个命令来通过ssh传输文件. 1.从服务器上下 ...

  3. c#将本地文件上传至服务器(内网)

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...

  4. ubuntu中将本地文件上传到服务器

    (1)在本地的终端下,而不是在服务器上.在本地的终端上才能将本地的文件拷入服务器. (2) scp -r localfile.txt username@192.168.0.1:/home/userna ...

  5. C# 把本地文件上传到服务器上,和从服务器上下载文件

    方法一.通过Ajax方式上传文件(input file),使用FormData进行Ajax请求 <div  > <input type="file" name=& ...

  6. iOS视频压缩存储至本地并上传至服务器-b

    最近做了一个项目,我把其中的核心功能拿出来和大家分享一下,重点还是自己梳理一下. 这里关于视频转码存储我整理了两个方法,这两个方法都是针对相册内视频进行处理的. 1.该方法没有对视频进行压缩,只是将视 ...

  7. iOS视频压缩存储至本地并上传至服务器

    最近做了一个项目,我把其中的核心功能拿出来和大家分享一下,重点还是自己梳理一下. 这里关于视频转码存储我整理了两个方法,这两个方法都是针对相册内视频进行处理的. 1.该方法没有对视频进行压缩,只是将视 ...

  8. Express+MySQL实现图片上传到服务器并把路径保存到数据库中

    demo准备:mysql5.7.20 express4.0 处理图片文件的中间件Multer 先搭建服务器并展示html页面 const express = require("express ...

  9. 借助XShell,使用linux命令sz可以很方便的将服务器上的文件下载到本地,使用rz命令则是把本地文件上传到服务器。

    rz 是将window文件传到linux服务器上,到执行rz命令的目录 sz 可以将linux文件发送到windows上,可以选择目录. https://www.google.com/ncr 登录一下 ...

随机推荐

  1. [Caffe] ubuntu14.04下使用OpenBLAS加速Caffe

    一.apt安装 sudo apt-get install libopenblas-dev 二.手动从source安装 1. 下载OpenBLAS并编译 git clone https://github ...

  2. CakePHP采用model的save方法更新数据所需查询

    采用model的save方法更新数据所需查询 1. 验证时候要确认是update 或者 create,以便使用对应规则 public $validate = array( 'field_name' = ...

  3. TDirectory.GetDirectoryRoot获取指定目录的根目录

    使用函数: System.IOUtils.TDirectory.GetDirectoryRoot 函数定义: class function GetDirectoryRoot(const Path: s ...

  4. web2.0最全的国外API应用集合

    web2.0最全的国外API应用集合 原文地址:http://www.buguat.com/post/98.html 2.0时代,越来越多的API被大家广泛应用,如果你还不了解API是何物,请看这里的 ...

  5. git push用法和常见问题分析

    在使用git 处理对android的修改的过程之中总结的.但不完善 Git push $ git push origin test:master         // 提交本地test分支作为远程的m ...

  6. js 小数格式化函数

    直接上代码,参数number为待格式化整数或小数,fix是要保留有效位数,过亿以亿结尾,过万以万结尾,toFixed函数记得,免得再查 function shorten_number (number, ...

  7. iPhone不同机型适配 6/6plus --备用

     机型变化 坐标:表示屏幕物理尺寸大小,坐标变大了,表示机器屏幕尺寸变大了: 像素:表示屏幕图片的大小,跟坐标之间有个对应关系,比如1:1或1:2等: ppi:代表屏幕物理大小到图片大小的比例值,如果 ...

  8. 第 15 章 组合模式【Composite Pattern】

    以下内容出自:<<24种设计模式介绍与6大设计原则>> 大家在上学的时候应该都学过“数据结构”这门课程吧,还记得其中有一节叫“二叉树”吧,我们上 学那会儿这一章节是必考内容,左 ...

  9. 15 个响应式的 jQuery 图像滑块插件

    设计师和开发人员总是试图使用新技术让网站更智能,而我们发现在许多网站上 jQuery 的图像滑块插件是非常受欢迎的.本文继续介绍 15 个 jQuery 图像滑块插件以供您选择. ELASTISLID ...

  10. 使用jxl.jar操作Excel

    在工程的build path中添加jxl.jar,网址:http://www.andykhan.com/jexcelapi/ import java.io.BufferedReader; import ...