表1
ID siteID logValue
1 1 111
2 2 222
3 3 333
4 2 444
5 2 555
6 3 666
7 1 777
表2
ID StieID StieName
1 1 北京
2 2 上海
3 3 香港我现在只会将表1原封不动的显示到GridView中,代码如下:
SqlConnection connection = new SqlConnection(conString);
connection.Open(); string sql = "select siteId,logValue from 表1";
SqlCommand cmd = new SqlCommand(sql, connection);// 定义Command对象
SqlDataAdapter daAdapter = new SqlDataAdapter();
daAdapter.SelectCommand = cmd;
dsData = new DataSet();
daAdapter.Fill(dsData); connection.Close(); dt = dsData.Tables[0];
GridView1.DataSource = dt;
GridView1.DataBind();
我现在想在GridView中呈现的效果是: ID siteID logValue
1 北京 111
2 上海 222
3 香港 333
4 上海 444
5 上海 555
6 香港 666
7 北京 777
如何将表1和表二关联起来呢?达到我想呈现的那个效果。
希望高手指点,万分感激!!!!!
解决方案 »
- 来接分,顺便留下你的算法【求任意长度的两个正整数数组中 重复数字的个数】
- 求C#连接postgresql数据库的代码,感激不尽!
- .net 做权限分配时,预览时出现“System.OutOfMemoryException”
- 取时间时的问题,怎么去掉0:00:00?
- 关于Cookie的问题 迷惑不解
- winform下有没有类似web窗体下的CheckBoxList控件?
- 请问以C#可以开发驱动程序吗?
- 如何使得 一个Form的弹出不影响另一个Form
- 如何用C#实现 以下C++代码,
- c#的打开word问题。到底怎么打开。请高手给我指点。(别给我新建word的例子,谢谢)。高手快点~~~~~~~
- 请教校内网自动写日志问题?
- 如何修改分辨率
INNER JOIN 表2 AS B on A.SiteID= B.SiteID
inner jion 表2 b on a.siteID=b.siteID
如果表1与表2有主外建关系,这样做也可以,也很容易接受
(也适合很多张表的链接查询)
select table1.id,table2.stieName,table1.logValue from table1,table2
where table1.StieID=table2.StieID
select ID,StieName,logValue from 表1 a left jion 表2 b on a.siteID=b.siteID
楼主并没有提到, 这里有外键约束。因此我们并不确定上面的值一定在下面出现。
(当然实际情况到底是什么样我们并不清楚。)
也就是说, 有可能上面表中可能出现, 下面表中没有的ID。当这种情况发生的时候, inner join会删掉这些行。
而left join则会保留这些行, 并且认为这是不能处理的行, 在右面置null。没有任何理由认为, lz想删除这些行。
所以, 应该是left join