以下函數用於將字符串轉換爲SqlXml
(System.Data.SqlTypes.SqlXml
)。但是,它有以下運行時錯誤?少了什麼東西?MemoryStream:System.ObjectDisposedException:無法訪問處置對象
System.ObjectDisposedException:無法訪問處置的對象。
對象名稱:'在流關閉時無效嘗試調用Read。'。
System.Data.SqlTypes.SqlXml GetXml(string s)
{
using (var memoryStream = new MemoryStream())
{
var settings = new XmlWriterSettings();
settings.OmitXmlDeclaration = true;
settings.ConformanceLevel = ConformanceLevel.Fragment;
using (var xmlWriter = XmlWriter.Create(memoryStream, settings))
{
xmlWriter.WriteString(s);
return new SqlXml(memoryStream);
}
}
}
錯誤發生在最後一行。
var range = GetXml("<Range><Column Name=\"Id\" Low=\"3397\" High=\"8999\" /></Range>");
cmd.Parameters.Add(new SqlParameter("@range", SqlDbType.Xml) { Value = range });
var result = cmd.ExecuteScalar();
這已經是MCV示例。 'SqlXml'是系統類型。 – ca9163d9