【ADO.NET】5、手机归属地查询( winfrom )

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[0];
                string EndN = str[1];
                string Name = str[2];

                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 = "号码地址:" + "地址未知!";
        }  
    }
   }
 }

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。