我现在要做一个查询工具,数据来自Serversql两个表(内连接),用户可以自己选择需要显示这两个表中任何字段,即查数据的字段,条件,是否要表连接,完全由用户自己选择,点击查询后显示相应数据到Datagridview中。

解决方案 »

  1.   

    你的意思是通过用户的选择拼一个sql查询语句出来??但是这样的话,那对象类怎么写,两个表中的字段数加起来有三十多。
      

  2.   

    你可以这样:
    创建一个强类型DateSet
    通过反射把所有字段拿到
    剩下的就是绑定查询
      

  3.   

    必须用dataset吗?用泛型集合不行吗?
      

  4.   

    select 用户输入的, 用户输入的, 用户输入的,用户输入的  
    from TableA A inner join TableA B on A.b_id = B.id //也可以将 
    A.b_id = B.id 替换成用户输入的
      

  5.   

    LZ其实就是操作sql语句  将用户选择的值作为条件  然后绑定到datagridview就OK了
      

  6.   

    用户怎么选择呢?
    可以用下拉框,也就是初始化的时候就将值绑定到下拉框
    至于怎么绑定我想LZ应该会吧
    绑定下拉框ex:SqlCommand cmd = new SqlCommand("Select 字段from 表", con);//con连接数据库
                        SqlDataAdapter sda = new SqlDataAdapter();
                        sda.SelectCommand = cmd;
                        ds = new DataSet();
                        dt = new DataTable();
                        sda.Fill(ds, "Master");                    dt = ds.Tables[0];
                        cmbDataName.DataSource = dt;
                        cmbDataName.DisplayMember = "Name";
                        cmbDataName.ValueMember = "Name";
                        cmbDataName.Text = "--请选择--";
      

  7.   

    我现在是想用泛型集合再绑定到datagridview中,这样用三层结构比较好维护,但是要是用泛型集合的话,我就要想怎么写对象类,一个活动的对象类
      

  8.   

    1.界面查询条件选择或输入框;
    2.
    sql stringbuilder sb=new stringbuilder();sb.append("select * from tb1,tb2 where 1=1")
    if(..... )
    sb.append( and ....).......
    string sql=sb.tostring();--------
    可是楼主
    你的要求“是否要表连接”
    这个太淡腾了,你还要控制当不要表连接的时候,那些查询条件是不可选用的。淡腾啊
      

  9.   

    蛮简单的啊。有什么难点?
    SQL语句拼接引应该没问题吧,让用户选就可以了,选完根据条件拼接SQL语句查询之。查完了就更简单了直接把查询到的结果往DATAGRIDview里面填充就可以了,什么都不用干。没难度