2013-10-08 43 views
1

我想显示所有与特定ID(practice_Area_ID)关联的公司。我不知道我是否设置我的Do循环不正确,或者如果它是我的SQL代码的问题。如何删除/修复重复记录在经典asp

问题是显示的结果只显示一家公司(当应该有5个不同的公司时),并且根据找到多少练习区域(本例中为5)重复多次。

换句话说,问题是,不是显示5个不同的公司,我只看到一家公司,但它被列出5次。

忽略我可怕的表格格式...只是试图让结果显示在这里。

<% 
intPractice_Area_ID = Request.QueryString("intPractice_Area_ID") 
%> 

(此处的随机HTML)

<% 

Set rsCompInfo = Server.CreateObject ("ADODB.Recordset") 
compSQL = "SELECT Company_Main.Company_Name, Company_Main.Company_address, Practice_Areas.Practice_Area_ID FROM Practice_Areas INNER JOIN (Company_Main INNER JOIN Company_Practice_CK ON Company_Main.Company_ID = Company_Practice_CK.Company_ID) ON Practice_Areas.Practice_Area_ID = Company_Practice_CK.Practice_Area_ID WHERE Company_Practice_CK.Practice_Area_ID =" & intPractice_Area_ID 
rsrsCompInfo.Open compSQL, Conn 
strName = rsProdInfo("Company_Name") 
strAddress = rsProdInfo("Company_Address") 

%> 

<table width="200" border="1"> 
    <tr> 
     <th>Firm Name</th> 
     <th>Address</th> 

    </tr> 

<% 


if rsCompInfo.EOF then 
Response.Write "No Records Found!" 
else 
strName = rsCompInfo("Company_Name") 
strAddress = rsCompInfo("Company_Address") 

Do While Not rsCompInfo.EOF 
%> 


<table border="1" cellspacing="0" cellpadding="2" width="602"> 
    <tr> 

     <td width="560" valign="top"><font face="Verdana" size="3"><b><%= strName %></b></font><p> 
     <td width="560" valign="top"><font face="Verdana" size="3"><b><%= strAddress %></b></font><p>   
      <input type="hidden" name="intPractice_Area_ID" value="<%= intPractice_Area_ID %>"> 
    </tr> 

     <td width="34"><td width="560"><font face="Verdana" size="2"> 
</table> 
<% 
rsCompInfo.MoveNext 
Loop 

end if 

rsCompInfo.Close 
set rsCompInfo = Nothing 

Conn.Close 
set Conn = Nothing 

回答

0

这是绝对正确的:

Do While Not rsCompInfo.EOF 
    ... 
    rsCompInfo.MoveNext 
Loop 

但你需要每次经过循环时间阅读rsCompInfo的当前值:

<%= rsCompInfo("Company_Name") %> 
    <%= rsCompInfo("Company_Address") %> 

'Hop e帮助!

+1

这照顾了我的问题。不知道为什么我没有尝试这一开始。谢谢 – user2856953