2023年7月4日发(作者:)
利用Web页面将 Excel数据远程导入Access数据库的方法 宁云智,刘东海 (湖南铁道职业技术学院,湖南抹洲412001) 摘一要:随着信息技术的普及、信息化水平的提高,各种各样的管理系统大量普及,数据录入是管理系统推广的第 步,快速高效地录入数据,以工资查询系统为例,介绍利用WP}l页面将Excel数据导入A¨-t| s数据库的方法通 过实例,讨论了数据导入的设计思路,并结合实际项目给出了相关程序代码 关键词:数据导入;Web页面;A(wss数据库;Excel数据 1概述 随荇信息技术的普及, 1 作cl1 Ext. l数抛尤ffl』几刎不 使』}J,琏于B/S模式的臀 系统人 普及,很多rI1小 ,lk为 提升T作效率、 约成本,荇I5选择使』IJ能捉尚I 作效 的瞥 系统,他们 使』}J这些僻理系统『I巡列r 始数 Il『多、 数据录入T:作{I 太大、求人时经常…错的麻烦 题,为解决 这些问题,【1r以将Ext-el数据 垃导人数槲库 埘卜一 中小 氽业F【数据艟不是很多的 业求说,选择一个经济, 的数据 库管理系统一血是他仃J所追求的.Ac(・fSS数据库足为他仃】 身 定做的,只要买J Ofif( ・软什就nf以使J}j A ss数 庠,不需 要另外化钱买数据库符理系统,像 r A s数据库符理系 统的小 系统被小型企业非常看 F面以I 资金}f1J系统为例 来介绍利J}J Web贞面将Ex(・el数撕导入A“ ss数据库的办法 2数据库设计与Excel数据整理 利川Web页面将ExceI数据导入A“一s数抛侔一‘咒婴在 A¨ s数据库q1设计 数据表. 没汁衷ll1『 汴崽 亍:段名字 的定义.最好采H】 名知其义的 ‘ ℃求定义 段名.方便 存程序 的 …j,这 以I 璇丧 例,1 资农的没汁 ¨ l所示 图1工资表设计图 根据数据表结构,没汁Ex(・el艾什模板.所仃数 按史什 模板顺序整理, 学 数 时蛰特圳 意数 列的t ̄lOi J 能 随意变更,所 数据之后不能包 汁之炎n { 3数据导入实现代码 3.1设计导入数据页面 数据导人贞而比较简f . 。一个添JJ【】“I.’iIr l - I'. 控件和一个按}n就¨I以. !㈨效果『』ll】 2所玎 图2数据导入页面 3.2页面初始化代码 为了判断当前丌】户是甭有导人数据权限. r资数据 人页面的初始化代码ff1加入权限判断.具体{Eii,5如F: protected void Page—Load(object sender,EventArgs e) ( if(Page.IsPostBack==falsel ( if((Session[“Admin—UserName”l!=nul1)&&(Con— ve rt.Tolntl 6(Session[“popedom—ID“1)==1)) { ) else ( Response.Write(“<script>alert( 对不起您没有这 个权限,请与系统管理员联系! );</script>“): Response.End《) } ) 巾第5行的“Session ITI Admiu_U I.Na,m ”l''乖f1“Ses— SiOll IfI 1)opedom一1D”J..为Session变 , 髓 定义的, 作者简介:宁云智(1980一). ,剐教授.硕} .研究 向:软什T ;刘东海(1974 ), .刚敦授.坝I:,研究 力 向:软件I 收稿日期:2016—08—05 实用第一. ’智慧密集 登录成功后将川户名干¨该州户的权限分别赋值给这 个变量。 3.3导入按钮事件代码 String empID.empname; ————导入按钮事件代码是天键,其没汁思路是,第一‘是通过 远程I 传ExceJ文件到服务器;第二是对I 传的Ex(-el义件进 行 询得到数据;第三是查询剑的数据捅人到数据表 33.1远程上传Ex(・el文件 通过远程访 贝【币将Ex(・cl义件导人服务器,可以实现不 ToString() Count;i-+)4 ∥此处省略了许多变量的定义 //接收来自execl数据表的各个列的数据 for(int i=0:i<ds.Tables【¨tb—execl”】.Rows year=ds.Tables【__tb—execl 】.RowsⅢ101 month=ds.Tables【¨tb—execl“1.Rows【i】【1】 ToString() 同It ̄1 ̄ij/f 同地点一I 传数据,L传史件剑服务器的代码如下: protected void Butupfile_—Click(object sender.EventArgs e) { string type1=FileUpload1.PostedFile.ContentType; batch=Convert.Tolntl 6(ds.Tables[“tb—ex— ecl”】.Rowsli][2]) emp—ID=ds.Tables【..tb_execl 】.Rows[i】【3】 ToString() string type=type1.Substring(type1.LastlndexOf(“一 )+ 1,5): 走取文件类型 if(string。Equals(type.‘excel”)) { string FileName=Server.MapPath( 一//App—Data//“) emp—name=ds.Tables(“tb—execl 】.Rowsli】 【4】.ToString() String SqlStr; -Fi4leUpload1.FileName;//获取文件名 FileUpload1.SaveAs(FileName);//上传到服务器 3.3.2查询上传的Ex( l文件 SqlStr=”insert into【tb—gz]([year],【month], 【batch]t【emp—ID],【emp_name1)values《~+year 4- . ‘+ month 4-Ut. ‘+batch 4-“ . 。4-emplD 4-II S, 。4-emp_name —将I 传的Ex(・el史件数据 询…来,为后续插入数据库做 准备,其代码如下: string connStr=“Provider=Microsoft.Jet.OLEDB.4.O: Data So urce=。。4-FileName+“;Extended Properties=Excel 8.0 ”: +’! )”: Boolean InsertResult; _InsertResult=db.UpdateDataBySqI(SqIStr); _if(!I nsertResult) _{ insertunsuccessfuIlyemp—name=emp—name; —_0IeDbConnection conn=new OleDbC:onnection {connStr); if Iconn.State.ToString()==”Closed ) { corm.Open(); } OleDbDataAdapter oda=new OIeDbDataAdaDter( } insertunsuccessfullyyear=year; __insertunsuccessfullymonth=month; __break; ’) if(insert—unsuccessfully_empname==““) —{ select from【工资数据¥ conn); DataSet ds=new DataSet0; oda.Fill(ds,"tb_execl”): conn.Close(); Response.Write(”<SCRIPT>aIert( 数据已成 功导入到数据库! );</SCRIPT>”): } else 33.3将数据插入到数据表 { 将食洵…米的数据插入到数据表,其具体代码耍¨ : trv _Response.Write(”<SCRIPT>alert( 其中 + f emp_name 4- 的数据导入失败,请查 看原数据! ) <,SCRIPT>”): insertunsuccessfully_if(ds.Tables[“tb execl”】。Rows.Count!=0) { String insertunsuccessfullyemp—name=…。: ___SqIStr=“delete frOm tbgz where year= —-i4nsertunsuccessfullyyear 4-。‘ and month= “4-insert_un— successfullymonth+ : _己录导入失败的人 String insertunsuccessfullyyear= _Boolean DeleteResult; —in— DeleteResult=db.UpdateDataBySqI《Sq}St r】: —month= :价己录当次导入成功记录的年 //份与月份,当有记录导入失败时用于删除已导入的记录的条 //1牛,实现再一次导入 sertunsuccessfully__} ) else DB db=new DB 0: {) ) catch(Exception) //定义接收来自execl数据表的各个列的数据的变量 String year,month.remark; int batch; (下转第12页) 6电 电脑■程技巧与t护 -亳 与t 实用第一 智慧密集 //启动代理进程 thread.start(); ) } public void processPdu(COmmandResponderEVent re— spEvnt)( ) //解析接收到的PDU信息 if(respEvnt!=null&&respEvnt.getPDU()!=nul1){ Vector<Va riableBinding>recVBs:(Vector< 3.2管理站端 参考Snmp4j源也lIl的t) . ̄.nmp4j.test.MuhiThreadedrrrapRe一 。. r硝J儿1改造. ¨r实现『{ 的箭理端处理逻辑. Va riabIeBinding>)respEvnt getPDU0.getVariableBindings0; for(int i=O:i<recVBs.size();i++){ VariabIeBindIng recVB=recVBs.get(i); String msg=recVB getOid0+”==“+recVB.getVariable0; public class M uItn。hreadedTraDReceivef1 implements Corn— mandResDonder{ private MultiThreadedMessageDispatcher dispatcher; private Snmp snmp:null; private Address listenAddress; private ThreadPool threadPool; |l log info(msg); System.out.println(msg); ,/调用短信猫接口,向管理员发送告警短信 ) ) public MultiThreadedTraDReceiVer1(){ ) private void init()throws UnknownHostException,IOEx— ception{ } ,/启动管理端监听 threadPool:ThreadPoo1.create(”Trap”,2)://线程池 dispatcher=new MultiThreadedMessageDis— public static void main(String[]args){ MultiThreadedTrapRece er1 multiTrapRece Ver= Datcher(threadPOOI,new MessageDispatcherlmplO); listenAddress:GenericAddress.parse(System new MuItiThreadedTrapReceiver1(): multiTrapReceiver.run(): ) ) getProperty( snmp4j.1istenAddress . udp:l27.0.0.1/162 )): //监听本地162端口 TransportMapping transport=new DefaultUdp— 3.3测试结果 TransportMapping((UdpAddress)listenAddress); snmp:new Snmp(dispatcher,transport); snmp.getMessageDispatcher().addMessagePro— cessingModel(new MPv2c0); snm0.1isten(); } 以上释序 Win7,Eclipse 3.7.2,JI)KI.6环境下悯试通 过洲试结果如下: 代理端打印: 系统物理可川I~ 总计:184MB 僻 端打印: public void run(){ try( 始监听rrr 倍息 1.3.6.1.2.99.999==wa ̄ il:111 ̄"ill()i ̄'is insufficient init(): snmp addCommandResponder(this); 4结语 给 了一个 l’RAP r式单向发送的监控程序 荚例, 实际 监控『lJ还需要补充双向 询反馈、 最小成本地部署”达到临控目标, 设置的实现,it:『l『以 System.out.println( 开始监听Trap信息“): )catch(E×ception e)f e.printStackTrace(System.out); ) .根据实际情况监控各种需要天注的告警信息,从而快速地、 —址—址—址—址・ -— —址— — — — .— —址— — -— ・ -— ・ l上— ・— -・ -・“-—址 址. — .址 . 上-. . 上.— .址.址. .址—址.址. .L—址.址. .址—址舣(上接第6页) () 批求入到Ext・el义件II1.冉将其导入划数据库, 数 的数据库时,微火地提高了信息求人的效率 创建较大 ’ … Response.Write("<script>aIert( 文件格式不正确I ):< /script>・・): l ) 参考文献 … j:云智,林东升.ASP.NET程序设¨‘顺口教程.大连:大 连理丁大 7:tti ̄H:,2014- I21父春尼.C# 开发E el数据钾能导人sQ1 2005数据 .电脑编程技』fj j维护,20l4. 『3l klJ永擢.Ext・Pl数据 入Orat・I 数据库表方法的研究 对 4结语 按 利川wrh贝皿将Ext l数 远程导人A“一s数据库 l,『 h‘法. 实州将Exl・rl数 远 导入其他数 将数 比.东华人学.2014. l4l j:云智. 予P,/S模式的中小 企业r资 询系统的没汁 ‘j实现,电腑编 技巧与维护,2014. 1 2电 巧与维 电脑维程技巧与维护、r i
发布者:admin,转转请注明出处:http://www.yc00.com/web/1688434125a137250.html
评论列表(0条)