2011-03-04 7 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); 

然後我做的:

command.ExecuteNonQuery(); 

最後:

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

我真的需要轉換爲字符串,然後將字節數組?

+0

你不能只選擇它並使用ExecuteXmlReader? – 2011-03-04 22:26:28

+0

@Marc:SQL代碼有點超出我的控制範圍。 – Schultz9999 2011-03-04 23:25:42

回答

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); 
相關問題