码迷,mamicode.com
首页 > 移动开发 > 详细

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

时间:2017-05-11 22:29:50      阅读:241      评论:0      收藏:0      [点我收藏+]

标签:param   删除表   direct   values   手机号码   connect   文本   数据库   without   

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

 

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

标签:param   删除表   direct   values   手机号码   connect   文本   数据库   without   

原文地址:http://www.cnblogs.com/yezuhui/p/6842793.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!