Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
используя xmlDocument добавить запись в базу данных
|
|||
|---|---|---|---|
|
#18+
как используя xmlDocument добавить запись в базу данных? есть xml такого типа: <?xml version="1.0" encoding="UTF-8"?> <tables> <table name=""> <field name="" type=""/> <field name="" type=""/> </table> <table name=""> <field name="" type=""/> <field name="" type=""/> <field name="" type=""/> </table> </tables> необходимо его загрузить и вытащить все <table> и <field>. Затем выполнить SqlCommand для каждой <field>. Не подскажите как это сделать?=/ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2006, 01:57 |
|
||
|
используя xmlDocument добавить запись в базу данных
|
|||
|---|---|---|---|
|
#18+
Здравствуйте, zh13, Вы писали: Z>как используя xmlDocument добавить запись в базу данных? Z>есть xml такого типа: Z><?xml version="1.0" encoding="UTF-8"?> Z><tables> Z> <table name=""> Z> <field name="" type=""/> Z> <field name="" type=""/> Z> </table> Z> <table name=""> Z> <field name="" type=""/> Z> <field name="" type=""/> Z> <field name="" type=""/> Z> </table> Z></tables> Z>необходимо его загрузить и вытащить все <table> и <field>. Затем выполнить SqlCommand для каждой <field>. Не подскажите как это сделать?=/ Примерно так: XmlDocument doc=new XmlDocument(); doc.Load(...); // Загрузка XML из файла или потока; doc.LoadXml(...) для загрузки из строки XPathNavigator nav=doc.CreateNavigator(); nav.MoveToRoot(); if (!nav.MoveToChild("tables",string.Empty)) // Второй параметр - namespaceURI return; if (!nav.MoveToChild("table",string.Empty)) return; do { string tableName=nav.GetAttribute("name",string.Empty); if (!nav.MoveToChild("field",string.Empty)) continue; do { string fieldName=GetAttribute("name",string.Empty); string fieldType=GetAttribute("type",string.Empty); // Создаём SqlCommand, выполняем } while (nav.MoveToNext("field",string.Empty); nav.MoveToParent(); } while (nav.MoveToNext("table",string.Empty)); Можно извратиться — используя XSLT сгенерировать код запроса сразу из XML. Если интересно, могу подсказать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2006, 05:59 |
|
||
|
используя xmlDocument добавить запись в базу данных
|
|||
|---|---|---|---|
|
#18+
В случае с MSSQL я считывал XML и подавал целиком на вход хп, а там через OPENXML...дело техники ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2006, 14:17 |
|
||
|
используя xmlDocument добавить запись в базу данных
|
|||
|---|---|---|---|
|
#18+
В случае с MSSQL я считывал XML и подавал целиком на вход хп, а там через OPENXML...дело техники а ты не мог бы легкий пример показать? заранее благодарен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2006, 00:10 |
|
||
|
используя xmlDocument добавить запись в базу данных
|
|||
|---|---|---|---|
|
#18+
Здравствуйте, zh13, Вы писали: Z>как используя xmlDocument добавить запись в базу данных? Z>есть xml такого типа: Z><?xml version="1.0" encoding="UTF-8"?> Z><tables> Z> <table name=""> Z> <field name="" type=""/> Z> <field name="" type=""/> Z> </table> Z> <table name=""> Z> <field name="" type=""/> Z> <field name="" type=""/> Z> <field name="" type=""/> Z> </table> Z></tables> Z>необходимо его загрузить и вытащить все <table> и <field>. Затем выполнить SqlCommand для каждой <field>. Не подскажите как это сделать?=/ Примерно так: XmlDocument doc=new XmlDocument(); doc.Load(...); // Загрузка XML из файла или потока; doc.LoadXml(...) для загрузки из строки XPathNavigator nav=doc.CreateNavigator(); nav.MoveToRoot(); if (!nav.MoveToChild("tables",string.Empty)) // Второй параметр - namespaceURI return; if (!nav.MoveToChild("table",string.Empty)) return; do { string tableName=nav.GetAttribute("name",string.Empty); if (!nav.MoveToChild("field",string.Empty)) continue; do { string fieldName=nav.GetAttribute("name",string.Empty); string fieldType=nav.GetAttribute("type",string.Empty); // Создаём SqlCommand, выполняем } while (nav.MoveToNext("field",string.Empty); nav.MoveToParent(); } while (nav.MoveToNext("table",string.Empty)); Можно извратиться — используя XSLT сгенерировать код запроса сразу из XML. Если интересно, могу подсказать. Спасибо. по поводу XSLT, мне сказали что если таким образом делать то не исключена возможность SQL-вставки. Я не профи и поэтому делаю как сказали Еще вопросик: можно как-то отобразить на страничке загруженные узлы..? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2006, 00:18 |
|
||
|
используя xmlDocument добавить запись в базу данных
|
|||
|---|---|---|---|
|
#18+
XmlDocument myXML = new XmlDocument(); StringWriter sw = new StringWriter(); XmlTextWriter xw = new XmlTextWriter(sw); myXML.Load(@"c:\upload\" + filename + ".xml"); myXML.WriteTo(xw); System.Data.SqlClient.SqlParameter doc = DBSource.Parameters.Add("@doc", SqlDbType.NText); doc.Value = sw.ToString(); Про OPENXML доходчиво на MSDN, очень простые примеры ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2006, 08:13 |
|
||
|
используя xmlDocument добавить запись в базу данных
|
|||
|---|---|---|---|
|
#18+
Здравствуйте, zh13, Вы писали: ... Z>Еще вопросик: можно как-то отобразить на страничке загруженные узлы..? Для отображения на странице XML-данных есть XmlDataSource. Его свойству Data можно присвоить строку с XML. Подключив к XmlDataSource, например GridView, получите табличное отображение XML-данных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2006, 08:42 |
|
||
|
|

start [/forum/topic.php?fid=18&msg=34125557&tid=1387573]: |
0ms |
get settings: |
9ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
47ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
34ms |
get tp. blocked users: |
1ms |
| others: | 246ms |
| total: | 366ms |

| 0 / 0 |
