2012-03-02 2 views
0

나는 다음과 같은 코드를 가지고 :은 방법 : 엔터프라이즈 라이브러리를 사용하여 "ExecuteXmlReader 연결 속성이 초기화되지 않았습니다"5.0

public string GetClients() 
    { 
     string outputxml = string.Empty; 
     Database db = DatabaseFactory.CreateDatabase("MyDatabase"); 
     SqlCommand sqlcmd = db.GetSqlStringCommand("SELECT CLIENTID, CLIENTNAME FROM [CLIENTS] FOR XML AUTO, ELEMENTS") as SqlCommand; 
     using (XmlReader reader = sqlcmd.ExecuteXmlReader()) //Exception thrown in this line 
     { 
      while (reader.Read()) 
      { 
       outputxml = reader.ReadOuterXml(); 
      } 
      return outputxml; 
     } 
    } 

이 방법은 내가 WCF 자체 과외의 일환으로하고있어 운동의 일부입니다 .

WCF 클라이언트 응용 프로그램에서이 메서드를 호출하는 동안 위에 표시된 지점에서이 게시물의 제목에서 언급 한 오류가 발생합니다. 데이터베이스에 대한 연결 문자열은 MyDatabase의 구성 파일에 지정되며 기본 데이터베이스로도 설정됩니다.

내가 여기서 뭘 잘못하고 있니? SOF 커뮤니티에 감사드립니다.

답변

0

감사합니다. 나는 틀린 것을 얻었다. 같은 코드가 다시 작성되었습니다.

public string GetClients()  
{   
string outputxml = string.Empty;   
Database db = DatabaseFactory.CreateDatabase("MyDatabase");   
SqlCommand sqlcmd = db.GetSqlStringCommand("SELECT CLIENTID, CLIENTNAME FROM [CLIENTS] FOR XML AUTO, ELEMENTS") as SqlCommand;   
using (XmlReader reader = db.ExecuteXmlReader(sqlcmd)) 
{    
    while (reader.Read())    
    {     
    outputxml = reader.ReadOuterXml();    
    }    
return outputxml;   
} 
} 
0

기본 연결 상태를 확인하려고 했습니까? 거기에서 열려고 시도 할 수도 있습니다.

당신은이 : 또한 직접 연결을 여는 시도 할 수

(sqlcmd.Connection.State == ConnectionState.Open) 

:

SqlCommand sqlcmd = db.GetSqlStringCommand("SELE..") as SqlCommand 

당신은으로 명령을 테스트 할 수 있습니다 t3rse @

sqlcmd.Connection.Open();