zoukankan      html  css  js  c++  java
  • 一个超级简单的IP地址搜索引擎(Asp.Net)事件代码12行

    页面设计:


    运行效果:



    当然,做这个需要一个IP地址的数据库文件。我用的是从网上下来的wry.dll,改成wry.dbf然后导入到Sql Server中。我把这个文件转成了Access 2000格式,传上来了。https://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 
  • 相关阅读:
    Liunx-----Shell脚本流程控制--顺序、选择、循环
    oracle基本查询
    Shell脚本练习题
    Shell脚本:选择结构、循环结构、
    Shell脚本
    Linux的基本命令
    动态页面技术(JSP/EL/JSTL)
    小功能:访问页面距上次访问有多久时间
    添加验证码,并验证验证码是否正确
    注册,登陆的Servlet、dao、service、domain、jsp页面、
  • 原文地址:https://www.cnblogs.com/liufei88866/p/1391445.html
Copyright © 2011-2022 走看看