none
三级联动怎样在数据库中写视图 RRS feed

  • 问题

  • 遇到一个问题,我要做一个三级联动的效果。

    这三级的数据显示都是用下拉框实现的,如果按照常规的,每次选择一个值,都要重新到数据库加载下一级的数据,这样,速度肯定会很慢。

    现在,我的想法是:根据第一级就加载所有的数据,将它取出来,然后,再根据下一级的条件直接在读出的数据里面再查询,这样的想法好像

    有一点缓存的效果,现在,我想将数据以分级的方式发在视图中,这样的SQL代码应该怎么写?

    也学我的问题描述的不够详细或者准确,希望大家给出相关的思路......

    谢谢!

    2010年10月21日 3:34

答案

  • 你好!

    and、or 都是可以的和 sql 类似

    dataTable.Select("name = 'zhangsan' and gender='男'");


    知识改变命运,奋斗成就人生!
    2010年10月22日 3:14
    版主

全部回复

  • 你好!

    可以将 3 级所有的数据全部保存到 Cache 中,加载下级数据时在服务端进行过滤,不用从数据读取。如

    foreach (DataRow row in dt.Select("Pid = x"))
    { 
      //...
    }
    


    知识改变命运,奋斗成就人生!
    2010年10月21日 4:25
    版主
  • 在循环的后面,dt.Select("Pid=x")是什么意思?

    是判断条件吗?

    我的意思是这样的,我这里列举一个表的结构:

    student                       name

    1                              zhangsan

    2                              lisi

    在dt.select()这个地方怎么写,才能保证,我只取到zhangsan这一个值。

    我按照你的方式写过了,zhangsan,lisi这两个值都读出来了。

    2010年10月21日 8:09
  • 这个一个过滤条件,与 SQL 类似

    如:你的需要就可以这样写

    dataTable.Select("name = 'zhangsan'");


    知识改变命运,奋斗成就人生!
    2010年10月21日 9:05
    版主
  • 请问,如果我有多个过滤条件,那么应该怎么写呢?

    2010年10月22日 2:43
  • 你好!

    and、or 都是可以的和 sql 类似

    dataTable.Select("name = 'zhangsan' and gender='男'");


    知识改变命运,奋斗成就人生!
    2010年10月22日 3:14
    版主