一个超级简单的IP地址搜索引擎(Asp.Net)事件代码12行

页面设计:
一个超级简单的IP地址搜索引擎(Asp.Net)事件代码12行

运行效果:
一个超级简单的IP地址搜索引擎(Asp.Net)事件代码12行


当然,做这个需要一个IP地址的数据库文件。我用的是从网上下来的wry.dll,改成wry.dbf然后导入到Sql Server中。我把这个文件转成了Access 2000格式,传上来了。 http://files.cnblogs.com/lqb/Database1.rar

你可以通过Access 2003/2007的升迁向导把数据库添加到Sql Server中,也可以用
SELECT   *   INTO  newtable 
FROM   OPENDATASOURCE  ( ' Microsoft.Jet.OLEDB.4.0 '
' Data Source="D:\DataBase1.mdb" '  )wry
的方法导入数据。 参考文献(表名前面有三个点)

有了数据可以做项目了,添加TextBox,Button,GridView控件各一个
Default.aspx.cs
     protected   void  Button1_Click( object  sender, EventArgs e)
    {
        
string [] a = TextBox1.Text.Trim().Split( ' . ' );
        
string  b  =   "" ;
        
for  ( int  i  =   0 ; i  <   4 ; i ++ )
            b 
+=   " 0000 " .Remove( 3   -  a[i].Length)  +  a[i];
        
// 处理IP地址
         string  con = " Data Source=LQB-PC\\SQLEXPRESS;Initial Catalog=IPTable;Integrated Security=True " ;
        
string  sql  =   " SELECT StartIP, EndIP, Country, Local FROM ip WHERE (SUBSTRING(StartIP, 1, 3) + SUBSTRING(StartIP, 5, 3) + SUBSTRING(StartIP, 9, 3) + SUBSTRING(StartIP, 13, 3) <= '~1') AND (SUBSTRING(EndIP, 1, 3) + SUBSTRING(EndIP, 5, 3) + SUBSTRING(EndIP, 9, 3) + SUBSTRING(EndIP, 13, 3) >= '~1') ORDER BY Local DESC, StartIP DESC " ;
        sql 
=  sql.Replace( " ~1 " , b);
        
// 完成连接字符串
        SqlDataAdapter adapter = new  SqlDataAdapter(sql,con);
        DataSet ds
= new  DataSet();
        adapter.Fill(ds);
        GridView1.DataSource
= ds.Tables[ 0 ];
        GridView1.DataBind();
    }

不小心暴露了一个我的小习惯,呵呵,我在写sql语句的时候,不喜欢里面用
sql  =   " select * from table where id=' "   +  TextBox1.Text  +   " ' and name=' "   +  TextBox2.Text  +   " ' " ;
如果参数越多会越乱。我直接用~1~2~3代替,然后
sql  =  sql.Replace( " ~1 " ,TextBox1.Text).Replace( " ~2 " ,TextBox2.Text);
一方面可以不会被'"++"'打乱思路,一方面也是为了好看!嘻嘻~

到这里程序就完成了,这里面最有用的还是长长的Sql语句,因为里面用了SubString的方法,将组合后的字符串进行比较。最后返回符合条件的内容。

我也是今天才发现Sql中还有好多函数可以用,利用这些会方便很多。准备尽快把sql支持的函数整理一下,包括使用方法和示例,贴上来。

PS:将上面的Sql语句替换成这个吧,会更简单些。
SELECT  StartIP, EndIP, Country, Local 
FROM  ip 
WHERE  ( Replace (StartIP,  ' . ' '' <=   ' ~1 ' AND  ( Replace (EndIP,  ' . ' '' >=   ' ~1 '
ORDER   BY  Local  DESC , StartIP  DESC  

你可能感兴趣的:(asp.net)