使用SQL语句实现select 表1.姓名,表2.代码描述 form 表1,表2 where 表1.性别=表2.代码值但是你的表有问题,建议将描述分成几个表实现性别为一个表,民族为一个表
解决方案 »
- richTextBox中使用了keydown事件 不能输入汉字 求帮助
- 为什么MessageBox的Yes,No要点两次而Cancel只点一次就行?
- 谁给我讲下IEnumerator怎么用啊.
- .net2.0里是否已经无法将一个类存入session中?
- 字符串比较问题---在线等
- 急 在线等 SOCKET问题。 高手帮忙啊。 高手帮忙啊。
- 怎么在代码里判断当前是调试运行(F5)还是不调试直接运行(Ctrl+F5)呢?
- 如何设置DataGrid中是否显示滚动条?
- 求救,数据库修改出错!
- 三维凸包算法C#程序
- 高分征求.NET下自定义报表解决方案!!!
- C#开发的软件如果实现中文文切换的问题,大虾帮忙
事实上所有代码我都在表2中,因为人事信息还包括如籍贯、学历等等内容,无法分别对应一个表
from
表1
inner join
表2
on
表1.性别 = 表2.代码值inner join
表2 AS 表3
on 表1.民族 = 表3.代码值
from 表1,表2 性别表,表2 民族表
where 表1.性别 = 性别表.代码值 and
表1.民族 = 民族表.代码值
我知道用sql语句实现,关注
grid即可。
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(轩辕十四) 说的那样做