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 登录一下 ...
随机推荐
- 用eclipse建立简单WebService客户端,使用WSDL,用于短信接口发送
使用工具:eclipse 标准版,不用任何插件. 操作步骤: 建立java Project 命名为mess: 再在project上右键,选择other,选择web service文件类别,选择web ...
- C# 获取随机可用端口号
TCP与UDP段结构中端口地址都是16比特,可以有在0---65535范围内的端口号.对于这65536个端口号有以下的使用规定: (1)端口号小于256的定义为常用端口,服务器一般都是通过常用端口号来 ...
- copy,retain,assign,strong,weak的区别
引用地址:http://www.aichengxu.com/view/32930 一.assign,copy,retain 1.copy是内容复制,新建一个相同内容的不同指针,retain为指针复制, ...
- 获取ListControl控件中(复选框)CheckBox的状态
原文地址:http://blog.chinaunix.net/uid-20680966-id-1896376.html 1 建立测试工程 新建一个对话框工程,并添加一个CListCtrl控件 ...
- 哈希,哈希表,哈希Map
数组: 数组存储区间是连续的,占用内存严重,故空间复杂的很大.但数组的二分查找时间复杂度小,为O(1):数组的特点是:寻址容易,插入和删除困难: 链表: 链表存储区间离散,占用内存比较宽松,故空间复杂 ...
- bzoj 3328: PYXFIB 数论
3328: PYXFIB Time Limit: 10 Sec Memory Limit: 256 MBSubmit: 130 Solved: 41[Submit][Status][Discuss ...
- 如何取消Linux下,vi中显示的^M符号
http://www.cnblogs.com/dkblog/archive/2012/02/03/2337187.html dos2unix file_name bash: ./configure: ...
- 利用TEA算法进行数据加密
TEA(Tiny Encryption Algorithm)是一种小型的对称加密解密算法,最初是由剑桥计算机实验室的 David Wheeler 和 Roger Needham 在 1994 年设计. ...
- 发现一个Doxygen风格的QT帮助
http://cep.xray.aps.anl.gov/software/qt4-x11-4.8.6-browser/classes.html http://cep.xray.aps.anl.gov/ ...
- java.math.BigInteger使用心得总结(转)
今天参考课本写了一个关于二进制与十进制转换的程序,程序算法不难,但写完后测试发现不论是二转十还是十转二,对于大于21亿即超过整数范围的数不能很好的转换.都会变成0.参考书籍发现使用使用BigInteg ...