2011-03-04 1 views
3

이 내 매개 변수 정의 :SqlDbType.Xml 형식의 출력 SqlParameter에서 XmlReader를 만들 수 있습니까?

다음
var param = new SqlParameter 
{ 
    ParameterName = "@param", 
    SqlDbType = SqlDbType.Xml, 
    Direction = ParameterDirection.Output, 
    Size = int.MaxValue 
}; 
command.Parameters.Add(param); 

I 수행

command.ExecuteNonQuery(); 

마지막을 :

XmlSerializer serializer = new XmlSerializer(typeof(MyClass)); 
return serializer.Deserialize(
    new MemoryStream(Encoding.UTF8.GetBytes(param.Value.ToString()))) 
    as MyClass; 

정말 바이트 배열 한 후 문자열로 변환해야합니까?

+0

'선택'만하고 'ExecuteXmlReader'를 사용할 수 없습니까? –

+0

@Marc : SQL 코드가 다소 통제 불능입니다. – Schultz9999

답변

0

또한이 방법으로 수행 할 수 있습니다

  cnn = new SqlConnection(); 
      cnn.ConnectionString = "xxxxxxxxxxxxxxxxx"; 
      cnn.Open(); 

      string selectQry = "SELECT [Xml] FROM [Table1] WHERE [PK_ID] = @ID"; 
      cmd = new SqlCommand(selectQry, cnn); 
      cmd.Parameters.AddWithValue("@ID", ID); 

      XmlReader reader = cmd.ExecuteXmlReader(); 

      if (reader.Read()) 
      xdoc.Load(reader);