//初学C#,写了个简单的身份证信息查询的小程序
//以下为部分源代码
//Visual Studio 2005下通过测试
//Form1.cs
usingSystem;
usingSystem.Collections.Generic;
usingSystem.ComponentModel;
usingSystem.Data;
usingSystem.Drawing;
usingSystem.Text;
usingSystem.Windows.Forms;
usingSystem.Data.OleDb;
usingSystem.Configuration;

namespaceIDCardCheck

...{
publicpartialclassForm1:Form

...{
stringstrIDCardNum;
boolwrongFlag=false;

publicForm1()

...{
InitializeComponent();
}

privatevoidbutton1_Click(objectsender,EventArgse)

...{
wrongFlag=false;

textBoxAddr.Text=null;
textBoxBirth.Text=null;
textBoxSex.Text=null;
textBoxCheckInfor.Text=null;

strIDCardNum=textBoxIDCardNum.Text;
if(string.IsNullOrEmpty(strIDCardNum))

...{
MessageBox.Show("请输入你要查询的身份证号码!");
textBoxIDCardNum.Focus();
}
elseif(strIDCardNum.Length==15)

...{
MessageBox.Show("对不起,该软件暂不支持15位的身份证号码!");
}
elseif(strIDCardNum.Length<18)

...{
MessageBox.Show("请检查你输入的身份证号码是否为18位!");
}
elseif(strIDCardNum.Substring(2,2)=="00"||strIDCardNum.Substring(4,2)=="00")

...{
MessageBox.Show("请输入有效的身份证号码!");
}
else

...{
for(inti=0;i<=16;i++)

...{
if(strIDCardNum[i]<'0'||strIDCardNum[i]>'9')

...{
MessageBox.Show("您输入的身份证号码中含有非法数字或字符,请检查!");
return;
}
}

if((strIDCardNum[17]>='0'&&strIDCardNum[17]<='9')||strIDCardNum[17]=='x'||strIDCardNum[17]=='X')

...{
GetAddr();
GetBirth();
GetSex();
GetCheckInfor();
}
}
}

privatevoidGetAddr()//从身份证号码中取出地址码(第1-第6位)

...{
stringstrAddr=null;
stringstrProvince,strCity,strTown;

strProvince=strIDCardNum.Substring(0,2)+"0000";
strCity=strIDCardNum.Substring(0,4)+"00";
strTown=strIDCardNum.Substring(0,6);

ConnectionStringSettingssettings;
settings=ConfigurationManager.ConnectionStrings["IDCardCheck.Properties.Settings.addrConnectionString"];
OleDbConnectionconn=newOleDbConnection(settings.ConnectionString+";JetOLEDB:databasepassword=icemanstudio2006");
DataSetds=newDataSet();

conn.Open();

stringSQLstr="SELECT*FROMProvinceWHERECode='"+strProvince+"'";
OleDbDataAdapterOleDbDA=newOleDbDataAdapter(SQLstr,conn);
OleDbDA.Fill(ds);

if(ds!=null)

...{
DataRowCollectionRows=ds.Tables[0].Rows;

if(Rows.Count<=0)...{MessageBox.Show("没检索到此记录,请检查你的输入是否有误!");wrongFlag=true;}
if(Rows.Count>0)

...{
strAddr=Rows[0]["Address"].ToString();//取出省
ds.Clear();


SQLstr="SELECT*FROMCityWHERECode='"+strCity+"'";
OleDbDA=newOleDbDataAdapter(SQLstr,conn);
OleDbDA.Fill(ds);

if(ds!=null)

...{
Rows=ds.Tables[0].Rows;

if(Rows.Count<=0)...{MessageBox.Show("没检索到此记录,请检查你的输入是否有误!");wrongFlag=true;}
if(Rows.Count>0)

...{
strAddr+=Rows[0]["Address"].ToString();//取出市
ds.Clear();


SQLstr="SELECT*FROMTownWHERECode='"+strTown+"'";
OleDbDA=newOleDbDataAdapter(SQLstr,conn);
OleDbDA.Fill(ds);

if(ds!=null)

...{
Rows=ds.Tables[0].Rows;

if(Rows.Count<=0)...{MessageBox.Show("没检索到此记录,请检查你的输入是否有误!");wrongFlag=true;}
if(Rows.Count>0)

...{
stringtemp;
temp=Rows[0]["Address"].ToString();
strAddr+=temp.Trim('');//取出省+市+县
ds.Clear();
conn.Close();

textBoxAddr.Text=strAddr;
}
}
}
}
}
}
}

privatevoidGetBirth()//从身份证号码中取出生日期码(第7-第14位)

...{
if(wrongFlag)return;

stringstrYear,strMonth,strDay;

strYear=strIDCardNum.Substring(6,4);
strMonth=strIDCardNum.Substring(10,2);
strDay=strIDCardNum.Substring(12,2);
textBoxBirth.Text=strYear+"年"+strMonth+"月"+strDay+"日";
}

privatevoidGetSex()//从身份证号码中取顺序码(第15-第17位)从而判定性别

...{
if(wrongFlag)return;

stringstrSex;

strSex=strIDCardNum.Substring(16,1);
if(System.Convert.ToInt16(strSex)%2==0)

...{
textBoxSex.Text="女";
}
else

...{
textBoxSex.Text="男";
}
}

privatevoidGetCheckInfor()//从身份证号码中取校验码(第18位)从而判断该身份证号码是否合法

...{
if(wrongFlag)return;

stringstrCheck;

string[]strWi=...{"7","9","10","5","8","4","2","1","6","3","7","9","10","5","8","4","2","1"};
inti,check=0;
stringstrCheckFlag=null;

strCheck=strIDCardNum.Substring(17,1);
if(strCheck=="X")strCheck="x";
for(i=0;i<=16;i++)

...{
check+=System.Convert.ToInt16(strIDCardNum.Substring(i,1))*System.Convert.ToInt16(strWi[i]);
check%=11;
}
switch(check)

...{
case0:strCheckFlag="1";break;
case1:strCheckFlag="0";break;
case2:strCheckFlag="x";break;
case3:strCheckFlag="9";break;
case4:strCheckFlag="8";break;
case5:strCheckFlag="7";break;
case6:strCheckFlag="6";break;
case7:strCheckFlag="5";break;
case8:strCheckFlag="4";break;
case9:strCheckFlag="3";break;
case10:strCheckFlag="2";break;
}
if(strCheck==strCheckFlag)

...{
textBoxCheckInfor.Text="校验码正确!应该是合法身份证。";
}
else

...{
textBoxCheckInfor.Text="校验码错误!可能是非法身份证。";
}
}
}
}
//app.config
<?xmlversion="1.0"encoding="utf-8"?>
<configuration>
<configSections>
</configSections>
<connectionStrings>
<addname="IDCardCheck.Properties.Settings.addrConnectionString"
connectionString="Provider=Microsoft.Jet.OLEDB.4.0;DataSource=|DataDirectory|addr.mdb"
providerName="System.Data.OleDb"/>
</connectionStrings>
</configuration>
分享到:
相关推荐
在C#中,可以遍历数据库查询结果,将每个身份证信息添加为ListView项: ```csharp private void DisplayIdentityCards() { listView1.Items.Clear(); using (var connection = new SqlConnection("your_...
【华视CVR-100U身份证阅读器C#读取demo】是一个基于C#编程语言的示例项目,用于演示如何从华视CVR-100U身份证阅读器中读取身份证信息和头像图片。这个阅读器是一款广泛应用在公共服务、企业办公等领域的设备,能够...
根据给定的文件信息,我们可以深入探讨C#在数据库应用系统设计中的具体应用,特别是针对一个酒店客房管理系统的开发过程。下面将详细解析系统的基本功能、运行环境、数据库设计以及部分代码实现。 ### 一、酒店客房...
在C#中开发一个能够解读身份证号的应用程序,涉及到的知识点主要包括身份证号的编码规则、数据库操作(特别是Access数据库)以及正则表达式。 1. **身份证号编码机制**: - 前6位代表行政区划代码,反映了持证人...
身份证图片识别工具C#【标准版】是一款基于C#编程语言开发的应用程序,主要用于自动识别身份证上的文字信息,包括姓名、性别、出生日期、地址、身份证号码等关键字段。这款工具利用了光学字符识别(OCR)技术,可以...
在IT行业中,身份证读卡器是一种常见的硬件设备,用于读取和验证身份证信息。明泰是一家知名的身份证读卡器制造商,提供了与之配套的软件开发工具包(SDK),以供开发者进行集成应用。本DEMO主要针对的是C#开发者,...
在实际应用中,开发人员可以使用各种编程语言(如Python、Java、C#等)和数据库连接库来连接和操作这个Access数据库。通过SQL查询,可以获取到特定身份证号的地区信息,也可以批量处理大量身份证数据。同时,为了...
精伦身份证阅读器IDR210是一款专用于读取和处理第二代身份证信息的硬件设备,常应用于政府、企事业单位、银行等需要验证身份信息的场合。它通过USB接口与计算机连接,能够快速、准确地读取身份证上的芯片数据,并将...
7. **安全性考虑**:在实际应用中,酒店管理系统可能涉及客户敏感信息,如身份证号、联系方式等。开发者需要关注数据加密、身份验证、授权等方面,确保信息安全。 8. **部署与测试**:项目完成后,开发者需要将程序...
总之,神思SS628型USB二代身份证DEMO(C#)为开发者提供了一个便捷的起点,通过这个DEMO,开发者可以快速掌握如何在C#环境下使用神思读卡器,从而有效地集成身份证识别功能到自己的应用程序中。
总结,华视CVR-100身份证阅读器的二次开发包为开发者提供了全面的工具和资源,无论你是熟悉哪种编程语言,都可以轻松将该设备集成到自己的应用中,实现高效、稳定的身份证信息读取功能。通过深入理解和实践这些知识...
在本项目中,"天津理工大学数据库课程设计c#+Mysql数据库课程设计-房屋租赁管理系统"是一个结合了C#编程语言和MySQL数据库技术的实践教学案例,旨在帮助学生掌握数据库管理和软件开发的基本技能。这个系统专注于房屋...
例如,当用户将身份证放在阅读器上时,VB程序可以通过API接收身份证数据,然后在界面上显示这些信息,或者将数据保存到数据库中。 VB二次开发的过程大致分为以下几个步骤: 1. **安装SDK**:首先,开发者需要在...
在C#.NET中,可以使用SQL语句创建和操作数据库表,或者利用Entity Framework等ORM(对象关系映射)工具简化数据操作。在界面上,用户可以输入图书信息,点击按钮触发后台的保存操作,从而将数据写入数据库。 对于借...
综上所述,这个C#编写的身份证阅读器ActiveX控件提供了一种简便的方法,使开发者能够在他们的应用程序中集成身份证读取功能,从而提高效率,简化用户操作。通过深入理解控件的工作原理和使用方式,开发者可以更好地...
4. 数据处理:读取到身份证信息后,开发者可以进行进一步的处理,如显示在界面上,存储到数据库,或者与其他系统集成。 在Java环境下,虽然VB例子无法直接运行,但VB的源码仍具有很高的参考价值。由于VB和Java都是...
在IT行业中,身份识别技术的应用日益广泛,其中身份证读卡器是常见的一种设备。本文将详细探讨如何使用VB.NET编程语言,针对华视CVR-100U身份证读卡器进行程序开发,以实现对身份证信息的有效读取和处理。 华视CVR-...
- 结果处理:识别后的信息会返回给应用程序,开发者需要解析并展示这些信息,可以是在UI上显示,也可以保存到数据库或其他存储中。 开发过程中,开发者需要注意以下几点: - 错误处理:必须处理可能出现的错误,...
1. **身份证读卡器接口**:程序需要与硬件设备(如身份证读卡器)进行交互,获取身份证信息。这可能需要使用特定的API或驱动程序,通常是通过COM接口或者.NET Framework提供的System.IO.Ports命名空间来实现串口通信...
通过这个源码示例,开发者可以快速学习到如何在C#环境中与硬件设备交互,特别是身份证和社保卡读卡器的使用。这不仅有助于提高开发效率,也为其他类似设备的集成提供了参考。在实际应用中,可以结合数据库存储、验证...