动态获得记录信息,然后先将获得的记录信息保存在一个列表(内存中),再定义一个定时器,定期将列表中的记录(批量)写入数据库

问题描述

windFrom当点击添加学生信息时,是先将学生记录保存在一个列表(内存中),定义一个定时器,定期将列表中的学生记录(批量)写入数据库如何做?高手请进,谢谢。//学生信息实体.cspublicclassstuInfo{publicstringname;//学生性名publicstringsex;//学生性别publicstringinfo;//备注信息}//DAO操作.cspublicclassDAO_stuInfo{privateDataBasedb;publicDAO_stuInfo(){db=newDataBase();}//学生信息publicvoidaddCrossing_TF_Record(stuInfos){try{stringstrSQL;strSQL="INSERTINTOstuInfo(name,sex,info)values(";strSQL=strSQL+s.name.ToString()+",";strSQL=strSQL+s.sex.ToString();strSQL=strSQL+",'"+s.info.ToString()+"')";db.changeData(strSQL);}catch(Exceptionex){throw(ex);}}}//实行命令文本.cs///<summary>///Update,Delete,Insert操作///</summary>///<paramname="strSQL">命令文本</param>publicvoidchangeData(stringstrSQL){getConn();SqlCommandobjCommand=newSqlCommand();objCommand.Connection=mConn;objCommand.CommandText=strSQL;try{objCommand.ExecuteNonQuery();}catch(Exceptionex){throw(ex);}finally{closeConn();}}

解决方案

解决方案二:
使用MSMQ,将数据串行化后丢到消息队列中,然后再用一个Windows服务定时从消息队列中取出数据,插入数据库,保存在内存中毕竟不安全,如果程序挂了,没存的数据就丢了,而MSMQ就不会存在这些问题。
解决方案三:
做个例子看看,谢谢
解决方案四:
你就将数据存储在里面然后用个timer控件,设置定时将内存中列表的数据插入数据库插入成功后,将这条数据从内存列表充删除,避免重复定时执行就好了啊
解决方案五:
1、引用System.messagiong.dll2、usingSystem.messagiong命名空间3、创建/建立自己需要的队列(这里监测专有队列)stringqueuename=".\private$\testQueue";MessageQueueq;if(MessageQueue.Exists(queuename)){q=newSystem.Messaging.MessageQueue(queuename);}else{q=MessageQueue.Create(queuename);}这代代码执行后,会在消息队列中的专有队列看到名为testQueue的队列。具体为管理工具--〉计算机管理--〉服务和应用程序--〉消息队列--〉专用队列可以看到队列中存在的消息4、向队列发送消息两种发送消息的方式:简单消息,直接利用q.send("....");的方式发送,复杂消息(譬如一个特定对象,当然是可序列化的)采用Messagem=newMessage();m.Label="msg1";m.Body="testbody";q.Send(m);发送。消息会采用缺省的XML格式编码送到队列中5、消息接收主动方式,会同步阻塞当前线程Messagem=Receive();//接收同时,从队列中删除消息orMessagem=Peek();//不删除接收到的消息被动方式,异步调用方式,不会阻塞当前线程q.ReceiveCompleted+=newReceiveCompletedEventHandler(ReceivedEvt);//事件q.BeginReceive();其中ReceivedEvt要么为静态函数,要么必须是属于实例化的对象的可访问函数privatestaticvoidReceivedEvt(objectsource,ReceiveCompletedEventArgsasyncResult){try{MessageQueuemq=(MessageQueue)source;Messagem=mq.EndReceive(asyncResult.AsyncResult);//此事m为异步接收到的消息//在此插入处理消息的代码Console.WriteLine("接收到消息"+m.Label);mq.BeginReceive();//接收下一次事件}catch(MessageQueueException){}return;}大体上就这些,完整的应用你可以看一下PetShop的异步订单处理,另外,注意一点,消息队列是Windows的一一项服务,默认并没有安装,需要在“新增/删除程序项”里添加该服务。其实MSMQ是一项分布式处理技术,作为WinForm应用,你可以将所有客户端的学生记录全部发送到服务器的消息队列中,由服务器统一完成数据库的插入,当然,是否有必要这样做,你可以根据自己的情况取舍。
解决方案六:
引用4楼orain的回复:

1、引用System.messagiong.dll2、usingSystem.messagiong命名空间3、创建/建立自己需要的队列(这里监测专有队列)stringqueuename=".\private$\testQueue";MessageQueueq;if(MessageQueue.Exists(queuename)){q=newSystem.Messaging.MessageQueue(queuename);}else{q=MessageQueue.Create(queuename);}这代代码执行后,会在消息队列中的专有队列看到名为testQueue的队…

UP!

时间: 2024-10-09 16:00:54

动态获得记录信息,然后先将获得的记录信息保存在一个列表(内存中),再定义一个定时器,定期将列表中的记录(批量)写入数据库的相关文章

动态数组,数组初始化,数组内存释放,向数组中添加一个元素,向数组中添加多个元素,数组打印,顺序查找,二分查找,查找数组并返回地址,冒泡排序,改变数组中某个元素的值,删除一个数值,删除所有,查找含有

 1定义接口: Num.h #ifndef_NUM_H_ #define_NUM_H_   #include<stdio.h> #include<stdlib.h>   /************************************************************************/ /*数组的结构体类型                                                    */ /***************

基础-双向动态链表存在学生信息!删除第一个学生信息时程序崩溃?

问题描述 双向动态链表存在学生信息!删除第一个学生信息时程序崩溃? //输入学生信息后,凡是删除第一个学生的信息程序都会崩溃?? #include <iostream> #include <stdio.h> #include <stdlib.h> using namespace std; #define LEN sizeof(struct Student) struct Student //完全可以把结构当成类,只是访问权限不一样 { long num;//学号 cha

怎样在Visual C# .NET中实现一个DataSet的不同记录的选取

visual 怎样在Visual C# .NET中实现一个DataSet的不同记录的选取来自:Microsoft Knowledge Base Article – 326176,地址: http://support.microsoft.com/default.aspx?scid=kb;EN-US;326176 摘要: 这是一篇基础性由浅入深的文章,这篇举例说明了怎样实现并怎样使用一个DataSetHelper类,该类使用简洁代码来创建一个新的使某个DataTable对象指定的某列的的值具有唯一性

窗体中字段顺序不同于Access 2007中记录源中字段顺序

症状 Microsoft Office Access 2007, 中拖动字段到窗体, 时窗体中字段顺序不同于记录源中字段顺序. 如果下列条件为真会发生此问题: • 在拖动字段来自记录源中的表. • 您将字段拖动到版式视图中窗体. 原因 出现此问题的是因为中表记录源中字段显示顺序与中访问 2007 返回字段顺序无关. 更多信息 步骤来重现问题 1. 在 Access 2007年打开数据库. 2. 关闭所有打开对象. 3. 在 创建 选项卡, Forms 组中单击 空白表单 . 窗体版式视图中打开.

在ASP.NET MVC 4 on Mono中使用OracleClient in CentOS 6.x的问题记录

  在ASP.NET MVC 4 on Mono中使用OracleClient in CentOS 6.x的问题记录 前言 最近有个Web项目,业务功能不复杂,但是这个客户(某政府部门)有两个硬性要求:1.数据库必须使用Oracle;2.程序必须运行在Linux或HP-Unix系统中.虽然把.NET程序跑在Linux中一直都是俺的自觉要求,之前也断续为此做了一些准备(我们自己的一些底层框架库已经在Linux中顺利跑起来了),但是把一个Web项目完整的移植到Mono in CentOS 6.x中确

(在HTML中)我先将select控件中选取的值取出放入数据库(已经实现),然后我需要查看信息的时候从数据库中取出数据,如何让select控件显示我从数据库中取出的对应的值呢?

问题描述 前台<htmlxmlns="http://www.w3.org/1999/xhtml"><headrunat="server"><title>UntitledPage</title></head><body><formid="form1"runat="server"><div><selectid="Sele

信息保护:你的敏感信息正在被泄露、滥用

科技日报11月20日消息,我们的背后不知道有多少窥视的眼睛,身份.位置.银行账号--各种个人敏感信息正被各形各色的采集者获取,滥用.泄露的风险无处不在.大数据时代,个人信息保护正遭受严峻的挑战. 你放心把自己的钥匙交给陌生人吗? 在不久前支付宝的一次升级中,用户可以提供更多信息用以提升芝麻信用值.当中国移动员工宁宇发现支付宝希望客户提供客服密码,授权给芝麻信用使用时提出了质疑:"把你的客服密码告诉支付宝,就等于把自己家的钥匙交了出去,你放心么?" 我国电信运营商都要求客户设置客服密码,

一个能对访问者进行编号、记录访问次数、IP、时间的统计制作实例_应用技巧

一个能对访问者进行编号.记录访问次数.IP.时间的统计制作实例  我做了一个网站,www.zydn.net  当然啦,跟大家一样,也摆了个计数器在上面,每天看计数器都在不断的翻,心里很高兴,不过后来我又想,到底是谁看了我的网站啊?是新朋友还是老朋友啊?也不知他们来了多少次,我还想给他们都编上号,于是我申请了 免费统计,不过一连换了N个都不满意,唉,看来,只有自己动手才能丰衣足食了,说干就干,水平臭臭,还望高手笑话之于,不访指教.  我以ACCESS库为例子,其实用SQL SERVER库也只要改一

信息设计的交流原则和信息设计中的图形设计

文章描述:信息设计中的图形设计原则. 在当今纷繁复杂的世界,设计形式也是百花齐放,什么设计才是最容易被用户接受,并且能很好的给用户带来他们需要的信息,这是值得我们探讨的.  信息设计的定义 信息设计顾名思义就是用于信息交流的设计,如果我们把"信息"这个词语拿出来单独来解释的话,首先"信息"这个词语由来已久,它是人类文明赖以发展的基础,可以说人类所有的知识和故事都是信息,通过信息的传递,人类的文明才得以进步和向前发展.现在人们接收的信息越来越多,所以我们可以根据规律来