当前位置:  编程技术>.net/c#/asp.net

c# 手机号码归属地查询的实现代码(图文)

    来源: 互联网  发布时间:2014-08-30

    本文导语:  C# 实现手机号码的归属地查询的功能,在winform中可以采用两种方式来实现。 一种是用WEB控件来显示该网页,和c# 天气预报查询实现原理一样。 一种就是采用本地数据库的方式来实现,即截取号码段与数据库中相应字段值比较...

C# 实现手机号码的归属地查询的功能,在winform中可以采用两种方式来实现。
一种是用WEB控件来显示该网页,和c# 天气预报查询实现原理一样。
一种就是采用本地数据库的方式来实现,即截取号码段与数据库中相应字段值比较,Select 出对应的信息。

本实例的效果图如下所示:

C#手机号码归属地查询的源码。
 

代码示例:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Data.SQLite;
using System.Text.RegularExpressions;
using System.IO;

namespace 手机号码查询
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        string phoneNum = "";//存储完整手机号码
        string tel = "";//存储手机号码的前缀

        private void tsbtnLocal_Click(object sender, EventArgs e)
        {
            if (!File.Exists("data"))//检查数据库是否存在
            {
                MessageBox.Show("数据库文件丢失!请找回!", "消息", MessageBoxButtons.OK, MessageBoxIcon.Information);
                return;
            }
            phoneNum = tstxtTel.Text.Trim();//完整手机号码
            tel = phoneNum.Substring(0, 3);//取手机号码前面三位判断
            if (checkTel())
            {
                phoneNum = phoneNum.Substring(0, 7);//取手机号码前面七位进行查询
                string sql = "select * from '" + tel + "' where numberrange='" + phoneNum + "' limit 0,1";
                SQLiteConnection con = null;
                SQLiteCommand cmd = null;
                SQLiteDataReader dr = null;
                try
                {
                    con = new SQLiteConnection("Data Source="+Application .StartupPath +"\data");
                    cmd = new SQLiteCommand(sql, con);
                    con.Open();
                    dr = cmd.ExecuteReader();
                    if (dr.HasRows)//如果存在此记录
                    {
                        txtLocaltion.Text = dr.GetValue(1).ToString();
                        txtType.Text = dr.GetValue(2).ToString();
                        txtZipCode.Text = dr.GetValue(3).ToString();
                        txtCityNum.Text = dr.GetValue(4).ToString();
                    }
                    else
                    {
                        MessageBox.Show("暂时未查找到此号码的记录!", "消息", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                                    
                }
                catch (Exception ex)
                {
                    MessageBox.Show("暂时未查找到此号码的记录!"+ex.Message , "消息", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
                finally
                {
                    dr.Close();
                    dr.Dispose();
                    con.Close();
                    con.Dispose();
                    tstxtTel.Focus();
                }
            }
        }
        //检验输入手机号码的合法性和正确性
        private bool checkTel()
        {          
            if (phoneNum == null)//如果号码为空
            {
                MessageBox.Show("号码不能为空!", "消息", MessageBoxButtons.OK, MessageBoxIcon.Information );
                tstxtTel.Focus();
                return false;
            }
            Match num = Regex.Match(phoneNum , "[0-9]+");
            if (!num.Success)//如果号码不为数字
            {
                MessageBox.Show("手机号码输入错误!", "消息", MessageBoxButtons.OK, MessageBoxIcon.Information);
                tstxtTel.Focus();
                return false;
            }
            if (phoneNum.Length < 7)//如果号码长度小于七位
            {
                MessageBox.Show("手机号码必须要大于7位!", "消息", MessageBoxButtons.OK, MessageBoxIcon.Information);
                tstxtTel.Focus();
                return false;
            }
            if (phoneNum.Length > 11)//如果号码长度大于十一位
            {
                MessageBox.Show("手机号码必须要小于11位!", "消息", MessageBoxButtons.OK, MessageBoxIcon.Information);
                tstxtTel.Focus();
                return false;
            }           
            if (tel != "130" && tel != "131" && tel != "132" && tel != "133" && tel != "134" &&
                tel != "135" && tel != "136" && tel != "137" && tel != "138" && tel != "139" &&
                tel != "150" && tel != "151" && tel != "152" && tel != "153" && tel != "156" &&
                tel != "158" && tel != "159")//如果不是手机号码
            {
                MessageBox.Show("手机号码输入错误", "消息", MessageBoxButtons.OK, MessageBoxIcon.Information);
                return false;
            }
            return true;
        }

        private void tstxtTel_KeyPress(object sender, KeyPressEventArgs e)
        {
            // 特殊键, 不处理
            if ((int)e.KeyChar


    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。




特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3