【问题标题】:Duplicate rows in GridView with SQL join query使用 SQL 连接查询在 GridView 中重复行
【发布时间】:2013-12-23 14:21:56
【问题描述】:

我的应用程序中有一个 GridView,我应该通过加入不同的表来显示记录列表。 SQL Join 查询显示记录,但在 1000 行内显示 2 到 3 条记录两次。是因为sql查询吗?

我使用的 SQL 查询是:

SqlDataAdapter da = new SqlDataAdapter("select dt.name, rg.sex, ad.dt_adm, st.*  " + 
      "from stdn_st st, stdn_reg rg, stdn_det dt, admsn_det ad where st.college='" + 
      lbl_college.Text + "' and st.course='" + lbl_course.Text + "' and st.sem='" + 
      lbl_sem.Text + "' and st.pass='" + lbl_pass.Text + "' and rg.id=st.sid and " + 
      "dt.sid=st.sid and ad.sid=st.sid", con);  

【问题讨论】:

  • 你试过使用distinct吗?也尝试使用JOIN 语法而不是旧的语​​法:select distinct dt.name, rg.sex, ad.dt_adm, st.* from stdn_st st inner join stdn_reg rg on rg.id=st.sid inner join stdn_det dt on dt.sid=st.sid inner join admsn_det ad on ad.sid=st.sid where st.college='" + lbl_college.Text + "' and st.course='" + lbl_course.Text + "' and st.sem='" + lbl_sem.Text + "' and st.pass='" + lbl_pass.Text + "'
  • @PeterRing 所有表只包含唯一记录。
  • @MahmoudGamal 你介意帮我加入吗?我觉得加入有点混乱
  • @umesh-sinha 但您在 qustion 中写道:“...它显示 2 到 3 条记录两次”那您的意思是什么?
  • 您在查询中使用的 JOIN 语法是旧的连接语法,它通过在 from 子句中列出带有 , 的表并将条件放在 WHERE 子句中,其他语法是使用JOIN 关键字并将条件放在ON 上,参见this article for more details

标签: c# asp.net sql sql-server gridview


【解决方案1】:

使用最新的连接语法。根据您的要求,您可以使用其中任何一种。

  1. 内连接
  2. 左连接
  3. 右连接
  4. 外连接

【讨论】:

  • 我不确定这如何回答这个问题?据我所知,OP 缺少 distinct !!
猜你喜欢
  • 2012-10-20
  • 2023-03-20
  • 1970-01-01
  • 1970-01-01
  • 2016-04-11
  • 2010-11-02
  • 2012-07-18
  • 1970-01-01
  • 2014-09-09
相关资源
最近更新 更多