首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

请问:怎么将txt保存的IP地址导入到数据库中

2012-08-22 
请教:如何将txt保存的IP地址导入到数据库中C# codeopenFileDialog1.Filter 文本文件(*.txt)|*.txtif

请教:如何将txt保存的IP地址导入到数据库中

C# code
            openFileDialog1.Filter = "文本文件(*.txt)|*.txt";            if (openFileDialog1.ShowDialog() != DialogResult.OK)            {                return;            }            using(FileStream fileStream = File.OpenRead(openFileDialog1.FileName))            {                using(StreamReader streamReader = new StreamReader(fileStream, Encoding.Default))                {                    string ConnStr = ConfigurationManager.ConnectionStrings["IP连接字符串"].ConnectionString;                    using(SqlConnection conn = new SqlConnection(ConnStr))                    {                        using(SqlCommand cmd = new SqlCommand("Insert into IPAddress(StartIP,EndIP,Country,Name) values (@StartIP,@EndIP,@Country,@Name)",conn))                        {                            string line = null;                            conn.Open();                            while ((line = streamReader.ReadLine()) != null)                            {                                string[] strs = line.Split(' ');                                string Start = strs[0];                                string End = strs[1];                                string Country = strs[2];                                string Name = strs[3];                                cmd.Parameters.Clear();                                cmd.Parameters.Add(new SqlParameter("StartIP",Start));                                cmd.Parameters.Add(new SqlParameter("EndIP", End));                                cmd.Parameters.Add(new SqlParameter("Country", Country));                                cmd.Parameters.Add(new SqlParameter("Name", Name));                                cmd.ExecuteNonQuery();                            }                        }                        MessageBox.Show("导入成功!");                    }                }            }        }


在string name = strs[3];超出索引范围

IP地址如下示:

0.0.0.0 0.255.255.255 IANA CZ88.NET
1.0.0.0 1.51.255.255 IANA CZ88.NET
1.52.0.0 1.52.255.255 美国 CZ88.NET
1.53.0.0 1.153.255.255 IANA CZ88.NET
1.154.0.0 1.154.255.255 美国 CZ88.NET
1.155.0.0 1.255.255.255 IANA CZ88.NET
2.0.0.0 2.255.255.255 IANA CZ88.NET
3.0.0.0 3.255.255.255 美国 康涅狄格州费尔菲尔德县费尔菲尔德镇通用电气公司
4.0.0.0 4.255.255.255 美国 科罗拉多州布隆菲尔德市Level 3通信公司
5.0.0.0 5.147.255.255 IANA CZ88.NET
5.148.0.0 5.148.255.255 加拿大 CZ88.NET
5.149.0.0 5.255.255.255 IANA CZ88.NET

[解决办法]
设置断点调试,看看strs,数组包括几项
[解决办法]
每次读一行,然后用string[] strItems = Split(new char[] { ' ' }); 
按照空格拆分一行的内容,前两个字符串就对应StartIP,EndIP字段了。
[解决办法]
出错位置设置断点
看看Country的值,是不是分组有问题 空格split经常出问题

热点排行