2012-06-26 3 views
1

저장 프로 시저를 사용하여 데이터베이스에서 xml 태그로 데이터를 검색하려고합니다. 표준 xml 응답과 같은 응답을 만들고 싶습니다. 이 데이터베이스에서 Xml 데이터를 내 페이지로 검색하십시오.

comm = new SqlCommand("[sp_get_business_locations]", conn); 
    comm.CommandType = System.Data.CommandType.StoredProcedure; 
    comm.Parameters.AddWithValue("@Latitude", Latitude); 
    comm.Parameters.AddWithValue("@Longitude", Longitude); 
comm.ExecuteNonQuery();  
cdoc.LoadXml(shop.GetXml()); 

이 무엇을

을 수행 할 수 있습니다 : <NewDataSet/>

이 검색 데이터 내 코드는 다음과 같습니다하지만 그 대신 나는라는 태그는 무엇입니까? 감사.

DataSet shop = new DataSet(); 
XmlDocument cdoc = new XmlDocument(); 

이 내 저장 프로 시저된다

SElECT  @TotalRows=COUNT(*) FROM HeritageList   
INNER JOIN  Reviews loc  WITH (NOLOCK) ON HeritageList.HeritageId = loc.HeritageId     
WHERE ([dbo].[DistanceBetween] (@Latitude,@Longitude,Latitude,Longitude)) * @meters <= @Radius       
        
   IF(@TotalRows>0)     
   BEGIN     
        DECLARE @Partialxml XML       
    DECLARE @Totalxml XML       
    declare @Appendxml VARCHAR(100)       
    SET @Appendxml = '<HeritageList></HeritageList>';       
    set @[email protected]       
        
    SET @Partialxml = (SELECT  HeritageList.HeritageId, 
          
        
        
       Latitude as "Location/Latitude",       
       Longitude as "Location/Longitude",       
       Country as "Location/Country",       
       [State] as "Location/State",       
       City as "Location/City",       
       Postcode as "Location/Postcode",       
       [Address] as "Location/Address",     
       (Cast(Round((([dbo].[DistanceBetween]           
        (@Latitude,@Longitude,Latitude,Longitude)) * @meters),2,1) as decimal(18,2))) as Distance     
       FROM dbo.HeritageList  INNER JOIN  Reviews loc   WITH (NOLOCK) ON HeritageList.HeritageId = loc.HeritageId     
       WHERE ([dbo].[DistanceBetween] (@Latitude,@Longitude,Latitude,Longitude)) * @meters <= @Radius     
         FOR XML PATH('Business'), ELEMENTS XSINIL)       
    SET @Totalxml.modify('insert sql:variable("@Partialxml")  as last into (/HeritageList)[1] ')       
      
    SELECT @Totalxml       
END     
    
END 
+1

CDOC 및 상점 무엇입니까? 명령을 어디서 실행합니까? 나는 마지막 줄이 sql 명령과 아무 관련이 없다고 생각하고 명령 결과 대신 기존 값을보고있다. 결과를 검색하려면 comm.ExecuteScalar 또는 comm.ExecuteReader를 실행해야합니다. –

+0

저장 프로 시저를 공유 할 수 있습니까? – Asif

+0

안녕하세요! 감사! 나는 그것을 편집했습니다 ... 나는 당신의 제안을 시도하고 있습니다 .. 다시 고마워요 –

답변

0

가 데이터 어댑터를 구축,

SqlDataAdapter adpater=new SqlDataAdapter(comm); 
DataSet shop=new DataSet(); 
adapter.Fill(shop); 

XmlDocument cdoc = new XmlDocument(); 
cdoc.LoadXml(shop.GetXml()); 
+0

감사합니다. 이미 사용했지만 작동하지 않습니다. 감사 –

관련 문제