C#实现公安通信信息查询系统摘要:为了提高公安系统对通话业务相关信息查询的准确性、快速性,减轻技术人员劳动强度,强化查询信息的安全性,简化查询流程,在总结分析目前信息查询现状后,运用c#语言、结合oracle数据库技术,开发了公安通信信息查询系统,实现了自动查询、保存、发送查询信息。关键词:c#;oracle;自动0引言现如今在公安系统侦破的一些案件中,犯罪嫌疑人的通话及通话工具情况是一个重点调查方向。以往都是相关技术人员在收到所要查询的信息后,登录到数据库手工进行查询,再手工将查询结果保存后通过电子邮件发送给公安系统相关单位,并且每天的查询量很大,因此为了快速、准确、自动地完成这项工作,减少办案时间,开发了公安信息查询系统。本系统运用c#语言对oracle数据库的信息进行快速、准确、高效的查询。1公安通信信息查询系统的设计思路考虑到此系统的保密性,设定只能通过内网进行登录,并且只能是指定ip、特定技术人员,通过密码进行访问。登录到该系统后,技术人员只需简单输入查询号码,点选相关查询信息、收件人信息后,点击一键完成即可。系统会将查询信息自动以excel格式保存下来,并自动以邮件附件的形式发出。在采用编程语言方面,考虑到c#语言的通用性、易用性及编码速度的快速性,决定采用该语言进行程序开发。2公安通信信息查询系统的实现2.1系统的保密性2.1.1在网络方面的保密性在网络设计上要充分考虑此系统的保密性,通过防火墙对内网进行仔细设置,并实现内外网的物理隔离。2.1.2软件方面的保密性首先通过c#语言取得登录机器的ip地址与指定ip进行比对,如果不符,则不允许登录。取本机ip地址的代码如下:iphostentryipentry=dns.gethostentry(dns.gethostname());stringipyesorno=ipentry.addresslist[0].tostring();其次需要输入用户名、密码才能登录系统,并将此信息记录到oracle数据库日志表中。2.2查询实现2.2.1建立存储过程,并通过c#来调用这个存储过程在oracle查询数据库中建立多个可以访问其他信息数据库的db_link,然后再建立一个传入参数型存储过程,该存储过程主要将查询条件按照连接串格式生成sql语句,通过db_link访问不同数据库,查找到相关信息,最后将这些信息汇总到查询信息结果表里。最后将查询条件信息用户在界面上选定相关信息后,通过c#就可以调用这个存储过程了,存储过程名是pr_jf_hdcx_gj。c#界面调用存储过程语句如下:try{……cm_hdcx_p.commandtext=“pr_jf_hdcx_gj”;cm_hdcx_p.commandtype=commandtype.storedprocedure;cm_hdcx_p.parameters.add(“nbr”,oracletype.varchar,20).value=number.trim();cm_hdcx_p.parameters.add(“start_month”,oracletype.float).value=vi_s;cm_hdcx_p.parameters.add(“end_month”,oracletype.float).value=vi_e;cm_hdcx_p.parameters.add(“flag”,oracletype.float).value=vi_flag;c_hdcx.open();cm_hdcx_p.executenonquery();c_hdcx.close();}catch(system.exceptionex){……}finally{……}2.2.2自动保存、发送考虑到自动保存、自动发送在程序中多处用到,因此在c#中生成两个方法,一个是自动保存,一个是自动发送。在查询完相关信息后,通过自动保存将所需信息保存下来,然后再调用自动发送,将所需信息按照先前设定的邮箱地址发送出去。c#自动保存方法如下:publicboolxform_jdt(stringcap_s,system.data.datatablemyexcel_data,stringmyexcel_n,stringmyexcel_un,stringmyexcel_f){……if(this.daochuexcel()){returndd;}……}publicbooldaochuexcel(){……if(myexcel_d.columns.count0){rangemyexcel_r=myexcel_s.get_range(myexcel_s.cells[1,1],myexcel_s.cells[2,myexcel_d.columns.count]);//这里设置表头标题for(inta=0;amyexcel_d.columns.count;a++){myexcel_s.cells[4,a+1]=datagridview1.columns[a].headertext;}for(intb=0;bmyexcel_d.rows.count;b++){for(intc=0;cmyexcel_d.columns.count;c++){myexcel_s.cells[b+5,c+1]=“‘“+myexcel_d.rows[b][c];}……}}myexcel_s.cells.entirecolumn.autofit();}c#自动发送邮件方法如下:privateboolsendmail(){……mailaddressfrom=newmailaddress(str_sender);mailaddressto=newmailaddress(t_s);mailmessagemessage=newmailmessage(from,to);if(system.io.file.exists(textbox3.text)){contenttypect=newcontenttype(mediatypenames.text.plain);attachmentitem=newattachment(textbox3.text);message.attachments.add(item);}if(system.io.file.exists(textbox4.text)&&(i_check_user==1)){contenttypect=newcontenttype(mediatypenames.text.plain);attachmentitem=newattachment(textbox4.text);message.attachments.add(item);}……smtpclientclient=newsmtpclient();client.host=str_host;client.deliverymethod=smtpdeliverymethod.network;client.usedefaultcredentials=false;client.credentials=newnetworkcredential(str_sender,str_passwd);client.enablessl=false;boolret=true;……3结束语本文根据c#语言的特性、orcale数据库技术,开发了公安通信信息查询系统。该系统能在收到号码20分钟内将所需的用户资料和话单返回给公安系统相关人员,加快了案件的侦破速度,提高了办案效率,也节省了相关技术人员的大量时间。参考文献:[1]杨凌云.c#.net二次开发纸盒系统的实现[j].软件导刊,2011(10).telecommunicationinformationquerysystemforpublicsecuritydevelopedwithc#abstract:inordertoimprovetheaccuracyandrapidityinprovidingtelecommunicationrelatedinformationdemandedbythepublicsecuritywithstrengthenedinformationsecurityandsimplifiedqueryprocess,thetelecommunicationinformationquerysystemforpublicsecurityisdeveloped,whichisbasedonthestudyofinformationquerysystemsbeingemployedcurrently,usingc#languagecombinedwithoracledatabasetechnologyandaimsatthequery,savingandsendingofmessagesautomatically.thisarticlegiveskeydetailsaboutthesystem.keywords:c#;oracle;automatic