C# 手机号码归属地查询

C# 手机号码归属地查询手机号码归属地的数据信息是存于某文件夹下的txt文档,打开一txt文档里面的数据格式如下:13003000000-13003009999-合肥13003010000-13003029999-蚌埠13003030000-13003049999-芜湖13003050000-13003069999-合肥13003070000-13003079999-淮南13003080000

大家好,又见面了,我是你们的朋友全栈君。

手机号码归属地的数据信息是存于某文件夹下的txt文档,

打开一txt文档里面的数据格式如下:

13003000000-13003009999-合肥
13003010000-13003029999-蚌埠
13003030000-13003049999-芜湖
13003050000-13003069999-合肥
13003070000-13003079999-淮南
13003080000-13003089999-合肥

。。。。。。。。。

一、创建数据库和表,表字段id,startNo,endNo,area(area由txt文件名和城市组成)

扫描该文件夹下的txt文档导入至创建的数据库表中。

代码如下:当然winfoorm 上需要一个导入按键以及一个FolderBrowserDialog控件。用来选中该文件夹。

if (fbd.ShowDialog() != DialogResult.OK) 
            {
                return;
            }
            string path=fbd.SelectedPath;
            string[] files=Directory.GetFiles(path,"*.txt",SearchOption.AllDirectories);
        
             using(SqlConnection conn=new SqlConnection(dbconn))
             {
                 conn.Open();
                 using (SqlCommand cmd = conn.CreateCommand()) 
                 {
                     cmd.CommandText = "insert into T_cellNo(startNo,endNO,area) values(@sNO,@eNO,@area)";
                     string lines=null;
                   foreach(string file in files)
                     {
                         string fname=Path.GetFileName(file);
                         string filename = Path.GetFileNameWithoutExtension(file);
                         using (FileStream filestream = File.OpenRead(file)) 
                         {
                             StreamReader reader=new StreamReader(file,System.Text.Encoding.GetEncoding("GB2312"));
                             while((lines=reader.ReadLine())!=null)
                             {
                                 string[] strs = lines.Split('-');
                                 string startNO = strs[0].ToString();
                                 string endNo = strs[1].ToString();
                                 string areas = strs[2].ToString();
                                 string area = filename + areas;
                                 cmd.Parameters.Clear();
                                 cmd.Parameters.Add(new SqlParameter("sNO", startNO));
                                 cmd.Parameters.Add(new SqlParameter("eNO", endNo));
                                 cmd.Parameters.Add(new SqlParameter("area", area));
                                 cmd.ExecuteNonQuery();

                             }
                         }
                     }
                     MessageBox.Show("数据库导入成功");

二、输入手机号点击按钮查询归属地代码

using (SqlConnection conn = new SqlConnection(dbconn))
            {
                conn.Open();
                using (SqlCommand cmd = conn.CreateCommand())
                {
                    cmd.CommandText = "select * from T_cellNO where startNO<=@NO and endNO>=@NO";
                    cmd.Parameters.Add(new SqlParameter("NO", textBox1.Text));
                    using (SqlDataReader reader = cmd.ExecuteReader())
                    {
                        if (reader.Read())
                        {
                            string area = reader.GetString(reader.GetOrdinal("area"));
                            MessageBox.Show("手机号码归属地"+area);
                        }
                        else 
                        {
                            MessageBox.Show("对不起,查无此号");
                        }
                        
                    }
                }
            }

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/163177.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • linux history 增加时间戳

    linux history 增加时间戳为了方便查看脚本使用记录,为history增加时间戳。vi/etc/profile在最底端,增加下面两行代码:exportHISTTIMEFORMAT=”%Y-%m-%d%H:%M:%S”exportHISTSIZE=2000保存完毕后,使用下面的方式,使之快速生效:source/etc/profile…

    2022年7月13日
  • 如何添加smtp服务器_smtp服务器设置

    如何添加smtp服务器_smtp服务器设置在现在这个时代中,人们传输信息基本上都是用邮件传输,那么你知道电脑之间是怎么用邮件传输的么。就是通过smtp服务器,通过这个服务器,人们可以把自己写的东西通过邮件经过这个服务器传输到你想让邮件传输到的地方,接下来就让小编好好给大家介绍一下。Smtp传输器是什么?Smpt的意思是简单的邮件传输协议,它是一组用于源地址到目的地传送邮件的规则,并且由它决定邮件的中转方式。Smtp传输器使用由tcp提供的…

    2022年9月1日
  • java取整函数

    向上取整Math.ceil()向上取整:比自己大的最小整数ceil是天花板的意思,表示向上取整,用数学符号⌈⌉表示Math.ceil(6.1)=7.0Math.ceil(6.9)=7.0向下取整Math.floor()向下取整:比自己小的最大整数floor是地板的意思,表示向下取整,用数学符号⌊⌋表示Math.floor(9.1)=9.0Math.floor(9.9)=10.0Math.round()四舍五入后取整,其算法为Math.round(x+0

    2022年4月8日
  • Discuz二次开发相应知识点

    Discuz二次开发相应知识点“Discuz”在下文中简称“DZ”。要弄DZ二次开发,必须至少具备如下技能:1)能够理很好理解MVC构架的原理(虽然DZ不是MVC架构的)2)扎实的PHP基础,熟悉结构化程序,OOP程序的写法及应用3)熟悉MYSQL就用,掌握SQL语言,懂SQL优化者更佳4)熟悉使用Discuz的各项功能一)Discuz的文件系统目录注:想搞DZ开发,就得弄懂DZ中每个文件的功能。

    2022年5月19日
  • python后端常见架构_常见的后端框架

    python后端常见架构_常见的后端框架后端vs前端如果您是Web开发世界的新手,后端和前端开发之间的区别可能不那么明显,但是,了解两者之间的区别很重要。以下是前端开发人员与后端开发人员的一些区别。前端开发:前端开发人员在很大程度上负责用户所看到的内容(即网站页面),前端开发人员主要使用HTML,CSS和JavaScript。他们的主要关注点是创建出色的用户体验,并确保网站设计和布局或Web应用程序始终具有凝聚力。后端开发:另一方面,后…

    2022年6月10日
  • rammap使用_查看内存的命令

    rammap使用_查看内存的命令参考TechnetProcessPrivate:分配给单一Process专用的内存MappedFile:用来储放档案内容快取(Cache)的内存空间SharedMemory:标注给多个Process共用的内存分页(Page,内存管理单位)PageTable:用来描述虚拟内存位址的分页表(裡面是一笔一笔的PTE,PageTableEntries)PagedPool…

    2022年10月23日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号