using System.IO;

有一个数据库手机号码的txt文件,格式是 : 13500000000-13560000000-中国移动

查询结果: 湖南移动[邵阳]
文件夹选择对话框 FolderBrowserDialog;

string[] Directory.GetFiles(路径,类型,选项) //按照通配符搜索目录下的文件
Path.GetFileNameWithoutExtension(文件名) //得到文件名(不要扩展名)
Path.Combine(路径1,路径2) //合并两个路径
Path.GetFileName(路径) //得到文件名(含有后缀)
Path.GetFullPath(路径) //得到文件的全路径

导入前先清除旧数据

界面是这样的:
一个文本输入框:txtMessage
一个查询按钮: btnCha
一个导入按钮: btnInput
一个Label控件: labMessage

private void btnInput_Click(object sender, EventArgs e)        //导入按钮 单击事件
{
FolderBrowserDialog dlg = new FolderBrowserDialog(); //选择目录对话框
if (dlg.ShowDialog() != DialogResult.OK)     //判断是否点确定
{
return;
}
string path = dlg.SelectedPath; //获取目录路径 string Str = ConfigurationManager.ConnectionStrings["ConnStr"].ConnectionString; //获取字符串
using (SqlConnection conn = new SqlConnection(Str)) //使用变量Str进行连接
{
conn.Open();
using (SqlCommand cmd = conn.CreateCommand())
{
cmd.CommandText = "delete from T_phone"; //先删除表
cmd.ExecuteNonQuery();
}
} //搜索指定目录下的所有 .txt 文件
string[] files = Directory.GetFiles(path, "*.txt", SearchOption.AllDirectories); using (SqlConnection conn = new SqlConnection(Str))
{
conn.Open();
using (SqlCommand cmd = conn.CreateCommand())
{
  cmd.CommandText = "insert into T_phone(StarNo,EndNo,Name) values(@SN,@EN,@NA)"; foreach (string file in files)
{
string 运营商 = Path.GetFileNameWithoutExtension(file); //得到文件名,无扩展名
string[] lines = File.ReadAllLines(file, Encoding.Default); //读取所有行,默认编码为UTF-8 foreach (string line in lines)
{
string[] str = line.Split('-'); //按"-"符分割
string StartN = str[];
string EndN = str[];
string Name = str[]; cmd.Parameters.Clear(); //先清空 Parameters
cmd.Parameters.Add(new SqlParameter("SN", StartN));
cmd.Parameters.Add(new SqlParameter("EN", EndN));
cmd.Parameters.Add(new SqlParameter("NA",运营商 + Name));
cmd.ExecuteNonQuery();
}
}
MessageBox.Show("导入完成!");
}
}
} private void btnCha_Click(object sender, EventArgs e) //查询按钮,单击事件
{
string Str = ConfigurationManager.ConnectionStrings["ConnStr"].ConnectionString; using (SqlConnection conn = new SqlConnection(Str))
{
conn.Open();
using (SqlCommand cmd = conn.CreateCommand())
{
cmd.CommandText = "select Name from T_phone where StarNo<@Num and EndNo>@Num";
cmd.Parameters.Add(new SqlParameter("@Num",txtNum.Text.Trim()));
SqlDataReader dr = cmd.ExecuteReader();
if (dr.Read())
{
string result =Convert.ToString(dr["Name"]);
labMessage.Text = null;
labMessage.Text ="号码地址:" + result;
}
else
{
labMessage.Text = "号码地址:" + "地址未知!";
}
}
}
}

【ADO.NET】5、手机归属地查询( winfrom )的更多相关文章

  1. PHP学习笔记:利用百度api实现手机归属地查询

    从来没有用过api,都不知道怎么获得api的数据,跟着demo,然后修改,终于实现了手机号码查询的功能,代码和说明很全,大家试试. <?php /** * Created by jianqing ...

  2. 手机归属地查询-IP地址查询-身份证查询-域名备案查询--Api接口

    使用这些接口是需要密钥的 公共密钥 appkey: 10003  secret: d1149a30182aa2088ef645309ea193bf  生成后sign: b59bc3ef6191eb9f ...

  3. 【原创】Java实现手机号码归属地查询

    网络上已经有很多的手机号码归属地查询的API接口,但是这些接口总是有一些大大小小的缺陷. 总结一下这些缺陷: 1.要直接将它的搜索框链接形式粘到自己的页面,点击查询的时候还要跳转到他们的网站来展示归属 ...

  4. 本地的手机号码归属地查询-oracle数据

    最近做的项目中,有个功能是手机归属地查询,因为项目要在内网下运行,所以不能用提供的webservice,只好在网上找手机归属地的数据,很多都是access的,我们的项目是用oracle,只好自己转吧, ...

  5. C# 号码归属地查询算法

    C# 号码归属地查询算法(根据Android来电归属地二进制文件查询修改) 前言 近期有个项目需要用到号码归属查询,归属地数据库可能比不上ip138,淘宝上也有卖的-,-! 文本提供一个279188条 ...

  6. C# 号码归属地查询算法(根据Android来电归属地二进制文件查询修改)

    前言 近期有个项目需要用到号码归属查询,归属地数据库可能比不上ip138,淘宝上也有卖的-,-! 文本提供一个279188条记录并压缩成562KB的归属地数据.我在互联网上搜索了相关文章,要不是数据库 ...

  7. 一个非常好的php实现手机号归属地查询接口类

    前一阵子看到了一个非常好的php手机归属地查询的类,写的很精简,查询也很精确!大致代码是这样的: <?php header("Content-type:text/html;charse ...

  8. 手机号码归属地查询api接口

    淘宝网 API地址: http://tcc.taobao.com/cc/json/mobile_tel_segment.htm?tel=15850781443 参数: tel:手机号码 返回:JSON ...

  9. android134 360 07 归属地查询

    <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android=&quo ...

随机推荐

  1. PHP中的生成XML文件的4种方法(转)

    <?xml version="1.0" encoding="utf-8"?> <article> <item> <ti ...

  2. 【42】了解typename的双重意义

    1.在template声明中,class与typename是等价的,但是使用typename更好. 2.在template实现中,模版形参是从属名称,嵌套在模版形参中的类型是嵌套从属名称,不依赖任何t ...

  3. JSON.NET概述

    1. JSON.NET概述 当JSON逐渐成为Ajax的标准数据交互格式时,在.NET中处理JSON数据只能使用字符串拼接的方法,十分麻烦,因而催生了JSON.NET这个项目. JSON.NET是一个 ...

  4. preference activity框架

    从android3.0开始preference框架做了重大改变 框架由一下四部分组成 1.preference screen布局 一个xml文件,指定了要显示的Preference控件. 每个控件应当 ...

  5. careercup-递归和动态规划 9.10

    9.10 给你一堆n个箱子,箱子宽w,高h,深d.箱子不能翻转,将箱子堆起来时,下面箱子的宽度.高度和深度必须大于上面的箱子.实现一个方法,搭出最高的一堆箱子,箱堆的高度为每个箱子高度的总和. 解法: ...

  6. IIS8无法调用Oracle.DataAccess .dll问题

    之前在.net平台下操作Oracle都是用的oracle.dataaccell.dll引用,但是服务器升级为II8后,发布的新服务有关Oracle数据库部分都无法运行,调试了好久发现是IIS8不支持低 ...

  7. yum在线升级

    RPM优点 由於 RPM 是透过预先编译并打包成为 RPM 文件格式后,再加以安装的一种方式,并且还能够进行数据库的记载. 所以 RPM 有以下的优点: RPM 内含已经编译过的程序与配置档等数据,可 ...

  8. .Net程序员快速学习安卓开发-布局和点击事件的写法

    关注今日头条-做全栈攻城狮,学代码也要读书,爱全栈,更爱生活.提供程序员技术及生活指导干货. 本系列课程 致力于老手程序员可以快速入门学习安卓开发.系统全面的从一个.Net程序员的角度一步步学习总结安 ...

  9. C++学习(二)

    九.3.内联1)编译器用函数的二进制代码替换函数调用语句,减少函数调用的时间开销.这种优化策略成为内联.2)频繁调用的简单函数适合内联,而稀少调用的复杂函数不适合内联.3)递归函数无法内联.4)通过i ...

  10. ThinkPHP函数详解:import方法

    import方法是ThinkPHP框架用于类库导入的封装实现,尤其对于项目类库.扩展类库和第三方类库的导入支持,import方法早期的版本可以和java的import方法一样导入目录和通配符导入,后来 ...