[英]T-SQL to XML to C# Back to SQL
我對SQL Server,C#等非常陌生。 但是我每天都在學習,這很有趣!
我需要從SQL Server 2個不同數據庫中的2個表中獲取信息。 將其轉換為.xml
文件,然后用C#對其進行冒泡排序,然后將其傳輸回SQL Server中的第3個數據庫中。
我已經編寫了將表轉換為xml文件的代碼,這里的問題是是否可以將它們轉換為一個.xml文件。
我所學的代碼為每個表創建了一個,因此來自2個數據庫的2個表為我提供了4個.xml文件。
SELECT *
FROM [Database1].[dbo].[Table_1]
ORDER BY NEWID()
FOR XML AUTO
SELECT *
FROM [Database1].[dbo].[Table_2]
ORDER BY NEWID()
FOR XML AUTO
SELECT *
FROM [Database2].[dbo].[Table_1]
FOR XML AUTO
SELECT *
FROM [Database2].[dbo].[Table_2]
FOR XML AUTO
將其轉換為xml文件后,我必須將其放入C#並將其冒泡排序到SQL Server的第3個數據庫中,如您所見,我至少可以獲取所需的數據,但是當涉及C#並進行冒泡排序時,完全迷失了。 我已經在Google周圍搜索,但是我很難理解,所以我希望你們可以嘗試以更簡單的方式進行解釋。
以下是后續步驟1)在c#中連接到sql數據庫( http://www.codeproject.com/Articles/4416/Beginners-guide-to-accessing-SQL-Server-through-C)2 )執行您的sql查詢在c#中3)將查詢放入DataTable。( https://msdn.microsoft.com/zh-cn/library/system.data.sqlclient.sqldataadapter ( v=vs.110 ) .aspx )
您的問題的一部分是:如何將4個XML結果合並為一個:
這是4個不同的調用,兩個針對當前Db,兩個針對另一個Db:
SELECT TOP 3 *
FROM INFORMATION_SCHEMA.TABLES
FOR XML RAW('INFORMATION_SCHEMA.TABLES'),ROOT('CurrentDb')
SELECT TOP 3 *
FROM INFORMATION_SCHEMA.COLUMNS
FOR XML RAW('INFORMATION_SCHEMA.COLUMNS'),ROOT('CurrentDb')
SELECT TOP 3 *
FROM OtherDb.INFORMATION_SCHEMA.TABLES
FOR XML RAW('INFORMATION_SCHEMA.TABLES'),ROOT('OtherDb')
SELECT TOP 3 *
FROM OtherDb.INFORMATION_SCHEMA.COLUMNS
FOR XML RAW('INFORMATION_SCHEMA.COLUMNS'),ROOT('OtherDb')
要將它們組合在一起,只需要將其包裝在外部選擇中。 並注意,TYPE
...
一些解釋:如果您SELECT * FROM xyz FOR XML RAW
編寫SELECT * FROM xyz FOR XML RAW
則將獲得XML。 這是一個完整而復雜的結構,但仍然是一個標量值。
將SELECT (SELECT * FROM xyz FOR XML RAW) AS MyXML,'test' AS OtherColumn FROM SomeTable
。 您將獲得XML,但以轉義文本表示形式。 您必須指定,TYPE
才能獲取真實的XML 。
SELECT
(
SELECT TOP 3 *
FROM INFORMATION_SCHEMA.TABLES
FOR XML RAW('INFORMATION_SCHEMA.TABLES'),ROOT('CurrentDb'),TYPE
)
,(
SELECT TOP 3 *
FROM INFORMATION_SCHEMA.COLUMNS
FOR XML RAW('INFORMATION_SCHEMA.COLUMNS'),ROOT('CurrentDb'),TYPE
)
,(
SELECT TOP 3 *
FROM OtherDb.INFORMATION_SCHEMA.TABLES
FOR XML RAW('INFORMATION_SCHEMA.TABLES'),ROOT('OtherDb'),TYPE
)
,(
SELECT TOP 3 *
FROM OtherDb.INFORMATION_SCHEMA.COLUMNS
FOR XML RAW('INFORMATION_SCHEMA.COLUMNS'),ROOT('OtherDb'),TYPE
)
FOR XML RAW
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.