Вызов хранимой процедуры с типом данных XML

Если наличие каталога уже существует, не проблема для Вас, Вы могли просто перенаправить stderr для той команды, избавления от сообщения об ошибке:

-mkdir $(OBJDIR) 2>/dev/null
7
задан John Saunders 15 April 2010 в 14:05
поделиться

3 ответа

Вам нужно передать xml в виде строки.

Но если вам не нужны xml-функции в базе данных, вы можете использовать varbinary для хранения файлов.


ОБНОВЛЕНИЕ !!!!!

Спасибо. Я заставил его работать. Добавлен следующий код:

StringWriter sw = new StringWriter(); 
XmlTextWriter xw = new XmlTextWriter(sw); 
doc.WriteTo(xw); 
StringReader transactionXml = new StringReader(sw.ToString()); 
XmlTextReader xmlReader = new XmlTextReader(transactionXml); 
SqlXml sqlXml = new SqlXml(xmlReader); 

Недостаточно преобразовать его в строку. Я получил следующую ошибку: Разбор XML: строка 1, символ 38, невозможно переключить кодировку ». Итак, я преобразовал в строку, затем накрыл ее на SqlXml, и это сработало.

9
ответ дан 6 December 2019 в 11:49
поделиться

Другой Более простой способ - записать xmldoc в строку и передать ее хранимой процедуре.

Dim sb As New StringBuilder()
Dim wrtr As New System.IO.StringWriter(sb)
doc.Save(wrtr)
Dim strxml As String = sb.ToString()
cmd.Parameters.Add("@FileContent", SqlDbType.Xml);
cmd.Parameters["@FileContent"].Value =strxml;
0
ответ дан 6 December 2019 в 11:49
поделиться

Другой способ сделать это, если вы не против потери объявления xml (версии и кодировки):

XML.DocumentElement.OuterXml 'where XML is a XMLDocument
2
ответ дан 6 December 2019 в 11:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: