Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Re: 如何在VS.NET中將SQL資料表轉為XML格式?

5 views
Skip to first unread message

小朱 (MS MVP)

unread,
Mar 6, 2006, 10:14:57 AM3/6/06
to
如果你的資料格式沒有什麼限制,你可以用 DataSet 來傳 .
但如果你的資料格式有限制,那你可以寫個 XSD,再產生一個 Typed DataSet 來傳 .
或者,你可以用 XML Serializer 來把類別轉換成 XML 來處理 .

不過,並非所有資料都要用 XML 來傳 .

--

============================================
朱明中 (小朱)
Microsoft MVP for Solution Architect, SQL Server
小朱資訊工作室 解決方案架構師
http://www.jcistudio.idv.tw
"阿德" <@discussions.microsoft.com> 撰寫於郵件新聞:626A5B9E-278A-4820...@microsoft.com...
> 謝謝您的回答
>
> 依您的講法,在VS.NET的環境中只要進行資料庫連線及呼叫WS
> 就不需顧及資料的格式問題囉
> 我是第一次使用WS來傳送SQL資料,還請多指教
>
>
>
> "小台" 來函:
>
>> 老實說~我不懂你的轉成XML
>> 因為在Web Service中他傳送的媒介都是xml的格式
>> 你只要把資料fill到ds中 當程式來擷取ASMX時
>> 程式會取得的格式都是標準xml的格式
>> 所以我不了解你為何還要再轉
>>
>>
>> "阿德" 來函:
>>
>> > 請教各位專家:
>> >
>> > 我現在要利用Web Service來傳送SQL Server的資料到另一台伺服器中...
>> > 當在SQL Server中是利用query analyzer 輸入select X from XX for xml
>> > auto指令來轉換成xml資料,
>> > 最後再加上xml標頭。
>> > 但在VS.NET的環境下,雖然我將該*.asmx加入web reference
>> > 也使用資料庫連線到SQL,可是不知如何轉成XML來傳送資料
>> > 各位專家可以教導我一下嗎?
>> > 謝謝!
>> >


阿德

unread,
Mar 6, 2006, 8:54:21 PM3/6/06
to
您好:

由於我將資料使用WS傳送時,必須先將SQL資料手動轉換為xml格式
因為還要加入宣告指令<?xml version="1.0" encoding="utf-8"?>,及需在頭尾加上根標籤<data><data/>
才能傳送成功...
VS.NET中是否有任何文件是關於您提的XSD or XML Serializer的操作方式呢?
而使用這些方法就可以不用管XML的格式嗎?
懇請回答,謝謝!

"?? (MS MVP)" 來函:

小朱 (MS MVP)

unread,
Mar 7, 2006, 2:59:18 AM3/7/06
to
我是都沒加過 .
如果你要自訂 XML 格式,那最好就用 XML Document DOM 來處理,但程式撰寫會有些麻煩 .

XSD 就是先把格式定好,再填入資料,因為可以利用 XSD 產生 Typed DataSet,所以若要用 DataSet 來輸出時,可以直接使用 WriteXML 來產生格式正確的 XML Data.

Typed DataSet:
http://msdn.microsoft.com/library/CHT/cpguide/html/cpcongeneratingstronglytypeddataset.asp?frame=true

XML Serializer 則是可以把類別成員變成 XML 的方式,但如果對它不熟的話,可以不用,以下為 XML Serializer 的 sample:

// in main code
// do XML serialize.
XmlSerializer serializer = new XmlSerializer(typeof(YuGo.RecruitInfo));
XmlTextWriter xw = new XmlTextWriter(
Request.PhysicalApplicationPath + "\\RecruitData\\" +
DateTime.Now.ToString("yyyyMMdd_HHmmss") + ".xml",
System.Text.Encoding.Default);

serializer.Serialize(xw, recruitInfo);
xw.Flush();
xw.Close();
serializer = null;
xw = null;

// data class applied to XML serializer.
public class RecruitInfo
{
public string ApplicateJobTitle = null;
public string Name = null;
public string SocialID = null;
public string Birthday = null;
public string ApplicateDate = null;
public string Address = null;
public string Gender = null;
public string MarryStatus = null;
public string Phone = null;
public string Cellphone = null;
public string Email = null;
public string Profession = null;
public RecruitGraduate[] Graduates = null;
public RecruitExperience[] Experiences = null;
public string PracticeSchool = null;
public string PracticeFrom = null;
public string PracticeTo = null;
public int Score = 0;
}

// output example XML with XML serializer.
<?xml version="1.0" encoding="big5"?>
<RecruitInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<ApplicateJobTitle>行政專員</ApplicateJobTitle>
<Name>測試應徵人員</Name>
<SocialID>A118298189</SocialID>
<Birthday>1/1/1</Birthday>
<ApplicateDate>2006/2/23</ApplicateDate>
<Address>1</Address>
<Gender>男性</Gender>
<MarryStatus>未婚</MarryStatus>
<Phone>05-2755595</Phone>
<Cellphone>0916886468</Cellphone>
<Email />
<Profession>ABCD</Profession>
<Graduates>
<RecruitGraduate>
<SchoolName>大學</SchoolName>
<Department>幼保系</Department>
<GraduateYear>1975</GraduateYear>
<GraduateMonth>6</GraduateMonth>
</RecruitGraduate>
</Graduates>
<Experiences>
<RecruitExperience>
<CompanyName>測試公司</CompanyName>
<Job>測試職稱</Job>
<WorkFrom>2005-02-23T00:00:00</WorkFrom>
<WorkTo>2006-02-23T00:00:00</WorkTo>
</RecruitExperience>
</Experiences>
<PracticeSchool />
<PracticeFrom />
<PracticeTo />
<Score>3</Score>
</RecruitInfo>

XML Serializer:
http://msdn.microsoft.com/library/CHT/cpguide/html/cpconIntroducingXMLSerialization.asp?frame=true

--

============================================
朱明中 (小朱)
Microsoft MVP for Solution Architect, SQL Server
小朱資訊工作室 解決方案架構師
http://www.jcistudio.idv.tw

"阿德" <@discussions.microsoft.com> 撰寫於郵件新聞:24ACEF00-4ECE-481E...@microsoft.com...

0 new messages