`
yuanlanxiaup
  • 浏览: 896421 次
文章分类
社区版块
存档分类
最新评论

C#中数据库应用-身份证信息查询器

 
阅读更多

//初学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#利用数据库实现的身份证信息解析

    在C#中,可以遍历数据库查询结果,将每个身份证信息添加为ListView项: ```csharp private void DisplayIdentityCards() { listView1.Items.Clear(); using (var connection = new SqlConnection("your_...

    华视CVR-100U身份证阅读器C#读取demo

    【华视CVR-100U身份证阅读器C#读取demo】是一个基于C#编程语言的示例项目,用于演示如何从华视CVR-100U身份证阅读器中读取身份证信息和头像图片。这个阅读器是一款广泛应用在公共服务、企业办公等领域的设备,能够...

    c#数据库应用系统课程设计

    根据给定的文件信息,我们可以深入探讨C#在数据库应用系统设计中的具体应用,特别是针对一个酒店客房管理系统的开发过程。下面将详细解析系统的基本功能、运行环境、数据库设计以及部分代码实现。 ### 一、酒店客房...

    身份证号解读 C#应用程序

    在C#中开发一个能够解读身份证号的应用程序,涉及到的知识点主要包括身份证号的编码规则、数据库操作(特别是Access数据库)以及正则表达式。 1. **身份证号编码机制**: - 前6位代表行政区划代码,反映了持证人...

    身份证图片识别工具C#【标准版】

    身份证图片识别工具C#【标准版】是一款基于C#编程语言开发的应用程序,主要用于自动识别身份证上的文字信息,包括姓名、性别、出生日期、地址、身份证号码等关键字段。这款工具利用了光学字符识别(OCR)技术,可以...

    明泰身份证读卡DEMO

    在IT行业中,身份证读卡器是一种常见的硬件设备,用于读取和验证身份证信息。明泰是一家知名的身份证读卡器制造商,提供了与之配套的软件开发工具包(SDK),以供开发者进行集成应用。本DEMO主要针对的是C#开发者,...

    身份证所属地区数据库

    在实际应用中,开发人员可以使用各种编程语言(如Python、Java、C#等)和数据库连接库来连接和操作这个Access数据库。通过SQL查询,可以获取到特定身份证号的地区信息,也可以批量处理大量身份证数据。同时,为了...

    精伦身份证阅读器idr210 C#.zip

    精伦身份证阅读器IDR210是一款专用于读取和处理第二代身份证信息的硬件设备,常应用于政府、企事业单位、银行等需要验证身份信息的场合。它通过USB接口与计算机连接,能够快速、准确地读取身份证上的芯片数据,并将...

    C#开发------酒店管理系统

    7. **安全性考虑**:在实际应用中,酒店管理系统可能涉及客户敏感信息,如身份证号、联系方式等。开发者需要关注数据加密、身份验证、授权等方面,确保信息安全。 8. **部署与测试**:项目完成后,开发者需要将程序...

    神思ss628型USB二代身份证DEMO(C#)

    总之,神思SS628型USB二代身份证DEMO(C#)为开发者提供了一个便捷的起点,通过这个DEMO,开发者可以快速掌握如何在C#环境下使用神思读卡器,从而有效地集成身份证识别功能到自己的应用程序中。

    华视CVR-100(身份证阅读器)

    总结,华视CVR-100身份证阅读器的二次开发包为开发者提供了全面的工具和资源,无论你是熟悉哪种编程语言,都可以轻松将该设备集成到自己的应用中,实现高效、稳定的身份证信息读取功能。通过深入理解和实践这些知识...

    天津理工大学数据库课程设计c#+Mysql数据库课程设计-房屋租赁管理系统.zip

    在本项目中,"天津理工大学数据库课程设计c#+Mysql数据库课程设计-房屋租赁管理系统"是一个结合了C#编程语言和MySQL数据库技术的实践教学案例,旨在帮助学生掌握数据库管理和软件开发的基本技能。这个系统专注于房屋...

    二代身份证阅读器 VB二次开发例子

    例如,当用户将身份证放在阅读器上时,VB程序可以通过API接收身份证数据,然后在界面上显示这些信息,或者将数据保存到数据库中。 VB二次开发的过程大致分为以下几个步骤: 1. **安装SDK**:首先,开发者需要在...

    C#.NET实例 图书管理系统 c#下SQL数据库连接

    在C#.NET中,可以使用SQL语句创建和操作数据库表,或者利用Entity Framework等ORM(对象关系映射)工具简化数据操作。在界面上,用户可以输入图书信息,点击按钮触发后台的保存操作,从而将数据写入数据库。 对于借...

    C#写的身份证阅读器ActiveX控件

    综上所述,这个C#编写的身份证阅读器ActiveX控件提供了一种简便的方法,使开发者能够在他们的应用程序中集成身份证读取功能,从而提高效率,简化用户操作。通过深入理解控件的工作原理和使用方式,开发者可以更好地...

    CVR-100U二次开发,vb例子+源码

    4. 数据处理:读取到身份证信息后,开发者可以进行进一步的处理,如显示在界面上,存储到数据库,或者与其他系统集成。 在Java环境下,虽然VB例子无法直接运行,但VB的源码仍具有很高的参考价值。由于VB和Java都是...

    vb.net华视身份证读卡器程序CVR-100U源代码

    在IT行业中,身份识别技术的应用日益广泛,其中身份证读卡器是常见的一种设备。本文将详细探讨如何使用VB.NET编程语言,针对华视CVR-100U身份证读卡器进行程序开发,以实现对身份证信息的有效读取和处理。 华视CVR-...

    百度OCR身份证识别C++离线SDKV3.0 C#WinFormTest.rar

    - 结果处理:识别后的信息会返回给应用程序,开发者需要解析并展示这些信息,可以是在UI上显示,也可以保存到数据库或其他存储中。 开发过程中,开发者需要注意以下几点: - 错误处理:必须处理可能出现的错误,...

    C# 二代身份证扫描程序 二次开发

    1. **身份证读卡器接口**:程序需要与硬件设备(如身份证读卡器)进行交互,获取身份证信息。这可能需要使用特定的API或驱动程序,通常是通过COM接口或者.NET Framework提供的System.IO.Ports命名空间来实现串口通信...

    德卡T10身份证,社保卡读卡C# 读取功能的源码示例

    通过这个源码示例,开发者可以快速学习到如何在C#环境中与硬件设备交互,特别是身份证和社保卡读卡器的使用。这不仅有助于提高开发效率,也为其他类似设备的集成提供了参考。在实际应用中,可以结合数据库存储、验证...

Global site tag (gtag.js) - Google Analytics