黑马程序员_手机号码归属地查询

来源:互联网 发布:js 遍历dom元素集合 编辑:程序博客网 时间:2024/05/16 13:54

---------------------- Windows Phone 7手机开发、.Net培训、期待与您交流! ----------------------

     最近一直在看第五季的ADO.NET视频。这部分视频中,最牛的一个程序就是

手机号码归属地查询了,省市选择也不错,嘿嘿。。看到杨老师视频中的手机号

码归属地查询这个程序。。。心动啦!O(∩_∩)O哈哈~通过看杨老师的视频在网

上收集资料。。我把这个程序搞定了。。。这是我的第一个像样的程序,有点小

激动,同时杨老师讲到了用配置文件,将数据库连接字符串放到配置文件中去,

方便以后的修改。这部分内容很实用,不过杨老师讲的东西都很实用,哈哈。看

看我的代码吧。。大家可以给点意见。

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

namespace 手机号码归属地
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            FolderBrowserDialog dlg = new FolderBrowserDialog();
            if (dlg.ShowDialog() != DialogResult.OK)
            {
                return;
            }
            string path = dlg.SelectedPath;

            string connStr= ConfigurationManager.ConnectionStrings["ConnStr"].ConnectionString;
            using (SqlConnection conn = new SqlConnection(connStr))
            {
                conn.Open();
                using (SqlCommand cmd = conn.CreateCommand())
                {
                    cmd.CommandText = "delete from T_Numbers";
                    cmd.ExecuteNonQuery();
                }
            }

            string[] files= Directory.GetFiles(path, "*.txt", SearchOption.AllDirectories);
            using (SqlConnection conn = new SqlConnection(connStr))
            {
                conn.Open();
                using (SqlCommand cmd = conn.CreateCommand())
                {
                    cmd.CommandText = "insert into T_Numbers (StartNo,EndNo,Name)values(@StartNo,@EndNo,@Name)";
                    foreach (string file in files)
                    {
                        string 运营商名称 = Path.GetFileNameWithoutExtension(file);
                        string[] lines = File.ReadAllLines(file, Encoding.Default);
                        foreach (string line in lines)
                        {
                            string[] strs = line.Split('-');
                            string 开始号码 = strs[0];
                            string 结束号码 = strs[1];
                            string 市 = strs[2];
                            cmd.Parameters.Clear();
                            cmd.Parameters.Add(new SqlParameter("StartNo",开始号码));
                            cmd.Parameters.Add(new SqlParameter("EndNo", 结束号码));
                            cmd.Parameters.Add(new SqlParameter("Name", 运营商名称+市));
                            cmd.ExecuteNonQuery();
                        }
                    }
                }
            }
            MessageBox.Show("导入成功!");
        }

        private void button2_Click(object sender, EventArgs e)
        {
            string connStr= ConfigurationManager.ConnectionStrings["ConnStr"].ConnectionString;
            using (SqlConnection conn = new SqlConnection(connStr))
            {
                conn.Open();
                using (SqlCommand cmd = conn.CreateCommand())
                {
                    cmd.CommandText = "select * from T_Numbers where StartNO<=@No and EndNo>=@No";
                    cmd.Parameters.Add(new SqlParameter("No", textBox1.Text));
                    using (SqlDataReader reader = cmd.ExecuteReader())
                    {
                        if (reader.Read())
                        {
                            string name= reader.GetString(reader.GetOrdinal("Name"));
                            MessageBox.Show("手机归属地:" + name);
                        }
                        else
                        {
                            MessageBox.Show("找不到运营商信息!");
                        }
                    }
                }
            }
        }
    }
}

 

配置文件:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <connectionStrings>
    <add name="ConnStr" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Database1.mdf;Integrated Security=True;User Instance=True
"/>
  </connectionStrings>
</configuration>

 

 

神奇的代码不要忘记放到main函数中:

string dataDir = AppDomain.CurrentDomain.BaseDirectory;

            if (dataDir.EndsWith(@"bin\Debug\") || dataDir.EndsWith(@"bin\Release"))
            {
                dataDir = System.IO.Directory.GetParent(dataDir).Parent.Parent.FullName;
                AppDomain.CurrentDomain.SetData("DataDirectory", dataDir);
            }

 

运行效果:

哈哈,给力吧。。。

 

---------------------- Windows Phone 7手机开发、.Net培训、期待与您交流! ----------------------

详细请查看:http://net.itheima.com/

原创粉丝点击