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());
}
}
}
}
}
}