Ich habe eine gespeicherte Prozedur, die Daten in Xml zurückgibt. Ursprünglich war der Stammknoten der Tabellenname selbst. Ich habe auch eine Änderung vorgenommen, so dass der Wurzelknoten "xml" ist.XmlReader liest kein Xml-Ergebnis von der gespeicherten Prozedur
in der gespeicherten Prozedur:
SELECT * FROM mytable
FOR XML PATH('mytable'), ROOT('xml'), ELEMENTS;
Das gleiche Problem tritt auf, wenn das Ergebnis wie folgt lautet:
string xmlresult = string.Empty;
using (var command = (SqlCommand)connection.CreateCommand())
{
command.CommandText = "sp_dosomething";
command.CommandType = CommandType.StoredProcedure;
using (XmlReader reader = command.ExecuteXmlReader())
{
while (reader.Read())
{
xmlresult = reader.ReadOuterXml();
}
}
}
Die Ausnahme ist:
Ungültiger Befehl ExecuteXmlReader gesendet. Der Befehl muss ein Xml-Ergebnis zurückgeben.
an:
bei System.Data.SqlClient.SqlCommand.CompleteXmlReader (SqlDataReader ds) bei System.Data.SqlClient.SqlCommand.ExecuteXmlReader()
Was bin ich falsch machen?
Bitte geben Sie Ihre XML-und gespeicherte Prozedur. –
@RonakPatel Die XML und SP sind ziemlich komplex, aber ich werde hinzufügen, wie ich die XML zurückgeben. –
Sie müssen mindestens Demo-XML zur Verfügung stellen, damit ich Ihnen helfen kann. –