手机号码归属地

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Data.SqlClient;
using System.Configuration;


namespace 手机号码归属地查询
{
    /// <summary>
    /// 思路:
    /// 1、通过FolderBrowserDialog获得用户选择的目录路径
    /// 2、通过Directory.GetFiles()获得路径下所有指定类型的文件路径
    /// 3、读取每一个文件下所有的内容
    /// 4、将每个文件中的内容插入数据库
    /// </summary>
    public partial class Form1 : Form
    {
        SqlConnection con = null;
        SqlCommand cmd = null;
        string constr = ConfigurationManager.ConnectionStrings["SQLDBConnectionStr"].ConnectionString;
        int i = 0;

        public Form1()
        {
            InitializeComponent();
        }

        /// <summary>
        /// 数据导入
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnImport_Click(object sender, EventArgs e)
        {
            FolderBrowserDialog fbd = new FolderBrowserDialog();
            if (fbd.ShowDialog() != DialogResult.OK)
            {
                return;
            }
            string filePath = fbd.SelectedPath;
            //获取用户选择目录下所有文件的路径
            string[] files = Directory.GetFiles(filePath, "*.txt", SearchOption.TopDirectoryOnly);

            using (con = new SqlConnection(constr))
            {
                con.Open();
                cmd = con.CreateCommand();
                cmd.CommandText = "insert into T_PhoneAddress(StartNum,EndNum,Name) values (@StartNum,@EndNum,@Name)";

                foreach (string file in files)
                {
                    //遍历每个文件,获取文件中的数据

                    //运营商名称
                    string phoneName = Path.GetFileNameWithoutExtension(file);
                    string[] lines = File.ReadAllLines(file, Encoding.Default);

                    foreach (string line in lines)
                    {
                        //拆分每行内容,插入数据库

                        string[] lineContents = line.Split(new char[] { '-' }, StringSplitOptions.RemoveEmptyEntries);
                        string startNum = lineContents[0];
                        string endNum = lineContents[1];
                        string name = lineContents[2] + phoneName;

                        cmd.Parameters.Clear();
                        cmd.Parameters.Add(new SqlParameter("StartNum", startNum));
                        cmd.Parameters.Add(new SqlParameter("EndNum", endNum));
                        cmd.Parameters.Add(new SqlParameter("Name", name));
                        cmd.ExecuteNonQuery();
                        i++;

                    }

                }
            }
            MessageBox.Show(i.ToString(), "导入成功", MessageBoxButtons.OK);
        }

        /// <summary>
        /// 查询
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnSearch_Click(object sender, EventArgs e)
        {
            if (txtNumber.Text == "")
            {
                MessageBox.Show("请输入手机号码", "提示", MessageBoxButtons.OK);
                txtNumber.Focus();
            }
            else
            {
                using (con = new SqlConnection(constr))
                {
                    con.Open();
                    cmd = con.CreateCommand();
                    cmd.CommandText = "select name from t_PhoneAddress where StartNum< @StartNum and EndNum> @EndNum";
                    cmd.Parameters.Add(new SqlParameter("StartNum", txtNumber.Text.Trim()));
                    cmd.Parameters.Add(new SqlParameter("EndNum", txtNumber.Text.Trim()));
                    if (cmd.ExecuteScalar() == null)
                    {
                        //找不到第一行第一列,就返回null
                        this.lbContent.Text = "没有数据";
                    }
                    else
                    {
                        this.lbContent.Text = Convert.ToString(cmd.ExecuteScalar());
                    }
                }
            }
        }
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值