使用SQL语句实现select 表1.姓名,表2.代码描述 form 表1,表2 where 表1.性别=表2.代码值但是你的表有问题,建议将描述分成几个表实现性别为一个表,民族为一个表

解决方案 »

  1.   

    能否使用Relation或其它方法实现,使用SQL语句实现不易保存。
    事实上所有代码我都在表2中,因为人事信息还包括如籍贯、学历等等内容,无法分别对应一个表
      

  2.   

    select 表1.姓名,表2.代码描述 性别,表3.代码描述 民族
    from
    表1
    inner join
    表2 
    on 
    表1.性别 = 表2.代码值inner join
    表2 AS 表3
    on 表1.民族 = 表3.代码值
      

  3.   

    表2 是的代码值如果不重复,则上述 SQL 适用
      

  4.   

    DataSet 里面也是可以存放表关系的!
      

  5.   

    http://www.syncfusion.com/FAQ/WinForms/FAQ_c44c.asp
      

  6.   

    能否使用DataTable和DataRelation或其它方法实现,由于与代码关联的列太多并且为动态的,如果使用SQL语句,则所构建的Select语句将非常复杂,也不利于数据修改后的保存,请问还有别的办法没?感谢楼上各位,期待
      

  7.   

    select 表1.姓名, 性别表.代码描述  性别,民族表.代码描述  民族
    from 表1,表2 性别表,表2 民族表
    where  表1.性别 = 性别表.代码值 and
    表1.民族 = 民族表.代码值
      

  8.   


    我知道用sql语句实现,关注
      

  9.   

    用sql或者存储过程写出联合查询之后把数据集绑定给datagrid
      

  10.   

    这个问题的实质是  一个SQL语句查询的问题,查出要求的结果集绑定给data
    grid即可。
      

  11.   

    直接在VIEW中建立,它会自动生成SQL语句的,然后加入WHERE条件。建立一个DATASET对象,把字段加到DATATABLE中去,然后从DATATABLE中取字段绑定到DATAGRID上显示
      

  12.   

    我是这样实现的DataSet ds = new DataSet();
    DataTable dt1 = ds.Tables.Add();
    DataTable dt2 = ds.Tables.Add();dt1.Columns.Add("name", typeof(string));
    dt1.Columns.Add("sex", typeof(string));
    dt1.Columns.Add("nation", typeof(string));
    string[] strTable1Row1 = {"张三", "0", "1"};
    dt1.LoadDataRow(strTable1Row1, false);
    string[] strTable1Row2 = {"李四", "1", "2"};
    dt1.LoadDataRow(strTable1Row2, false);dt2.Columns.Add("class", typeof(string));
    dt2.Columns.Add("descript", typeof(string));
    dt2.Columns.Add("num", typeof(string));
    string[] strTable2Row1 = {"性别", "男", "0"};
    dt2.LoadDataRow(strTable2Row1, false);
    string[] strTable2Row2 = {"性别", "女", "1"};
    dt2.LoadDataRow(strTable2Row2, false);
    string[] strTable2Row3 = {"民族", "汉", "1"};
    dt2.LoadDataRow(strTable2Row3, false);
    string[] strTable2Row4 = {"民族", "回", "2"};
    dt2.LoadDataRow(strTable2Row4, false);DataTable dtTemp = dt2.Clone();
    dtTemp.TableName = "table3";
    ds.Tables.Add(dtTemp);
    DataRow[] drTemp = dt2.Select("class='性别'");
    foreach(DataRow drTemp2 in drTemp)
        dtTemp.ImportRow(drTemp2);
    DataRelation drelation = ds.Relations.Add("relation", dt1.Columns["sex"] , dtTemp.Columns["num"]);
    foreach(DataRow dr1 in dt1.Rows)
    {
        foreach(DataRow dr2 in dr1.GetChildRows("relation"))
            dr1["sex"] = dr2["descript"].ToString();
    }
    this.DataGrid1.DataSource = dt1;
    this.DataGrid1.DataBind();偷了点懒,只做了姓名那一列,民族也可以用这个方法实现。显示如下
    name sex nation 
    张三  男    1 
    李四  女    2我才开始学.Net,所以程序写的很烂,实际的程序是不能用这种方法的,大家不要嘲笑我哈
    我也数据库的结构很不合理,应该按 RedErick(轩辕十四) 说的那样做