首先,弹出窗口技术可以看类于多窗口传参之类的话题,一般是四五种方法,各有特点,“牛人”们也在打嘴架,所以选择你认为合适的方法就可以了。
其次,查询可以由多种方实实现,象楼主所说的“是数据库里对每个查询列已定义“。但这种方法根本就没有通用性,低一点的层次用构造SQL来实现。高一点的,一般都有通用的查询函数,可以构造出你所想要的查询。至于一般人所言ORM之类,你大可以不必吊它,因为它只是封装了一些操作而已,反而造成了你无法理解为什么结果是这个样子的。

解决方案 »

  1.   

    我也试图做个类似的 不是很成功 联表查询时 列出字段很麻烦  
    那些列 我是通过 进入进入数据编辑窗口时的 传入一个查询所有列的sql语句 select * from ....   通过 Reader.GetSchemaTable(); 得到所有所查询的是数据集的字段列表
      

  2.   

    查询功能在我以为是和筛选功能差不多的,我以前帮同学写了一个
    程序,运行后在窗口中的DataGrid中显示所有数据,当点击"查询"时弹出一对话框,
    用户可自己选择字段,字段中包含的文字进行筛选,只用了DataView的Filter
    后来同学说那不能满足他的要求,他要在查找时弹出对话框,当用户填写好条件点击OK时定位到第一个符合条件的记录,"查找下一个"定位到下一符合条件的记录
    我只好自己又给他写了一个类searchOption,实现了别的语言中的DataTable.locate功能
    总觉得C#的DataView.Find的功能太少,如果你不自己写一个来代替,只能在数据填充前写好SQL查询字符串,但那样就不容易很好地和编辑等功能合在一起