黑马程序员之ADO.NET学习笔记:IP地址归属地查询。查询结果:北京移动[海淀]。

来源:互联网 发布:买车的知乎 编辑:程序博客网 时间:2024/05/01 19:44

--------------------------------------------------- 2345王牌技术员联盟、2345王牌技术员联盟、期待与您交流!---------------------------------------------------------

//IP地址归属地查询。查询结果:北京移动[海淀]。

//先把数据文件解压到硬盘上,然后写程序进行数据导入:扫描解压的目录下所有的txt文件,然后依次读取每个文件,注意用上文件名,表三列:起始号码,结束号码,运营商名称(山东移动[河泽])
//查询:select * from *** where StartNo <= @No and EndNo >=@No

using System;
using System.Collection.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace 数据导入导出
{
       public Form1()
       {
              InitializaComponent();
       }
       private void button1_Click(object sender,EventArgs e)
       {      
               if(odfImport.ShowDialog() != DialogResult.OK)
               {
                      return;
               }
               if( odfImport.ShowDialog() == DialogResult.OK)
               {
                      using(FileStream fileStream = File.OpenRead(odfImport.FileName))
                      {
                                using(StreamReaser streamReader = new StreamReader(fileStream))
                                {
                                        string line = null;
                                        while((line = streamReader.ReadLine())! = null)
                                        {
                                              string[] strs = line.Split('|');
                                              string name = strs[0];
                                              int age = Convert.ToInt32(strs[1]);
                                              using(SqlConnection conn = new SqlConnection(@"Data Source = .\SQLEXPRESS;AttachDBFilename=|DataDirectory|\MyDB.mdf;Integrated Security = True;User Instance = True"))
                                               {
                                                        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.Defaule);//不用StreamReader,因为文件很小,一次性加载也不占多少内存。经反编译得知,ReadAllLines默认编码是UTF-8
                                                                         foreach(string line in lines)
                                                                         {
                                                                               string[] strs = line.Split('-');
                                                                               string 开始号码 = strs[0];
                                                                               string 结束号码 = strs[1];
                                                                               string 市 = strs[2];
                                                                               cmd.Parameter.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 btnSearch_Click(object sender,EvnetArgs 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",txtPhone.Text));
                                         using(SqlDaraReader reader = cmd.ExecuteReader())
                                        {
                                               if(reaser.Read())
                                               {
                                                     string name = reader.GetString(reader.GetOrdinal("Name"));
                                                     MessageBox.Show("name");   
                                               }
                                        }
                               }
                       }
                                                        
               }          
                                       
       }

}


--------------------------------------------------- 2345王牌技术员联盟、2345王牌技术员联盟、期待与您交流!---------------------------------------------------------