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