2014-01-30 52 views
1

我是vb.net的初學者。 請告訴我所有我能在從多個textbox.text在vb.net xml文件我sid有錯誤「數組界限不能出現在類型說明符」 我也有錯誤Dim ds.ReadXml(ds)「語句的結束時的預期」如何在VB.net中將多個文本框的值寫入XML文件?

Protected Sub btnChkService_Click(sender As Object, e As EventArgs) Handles btnChkService 

    Dim cid As Int32 
    Dim sid As Int32 
    Dim tid As String 
    sid = Convert.ToInt32(TxtSiteId.Text) 
    cid = Convert.ToInt32(TxtCompId.Text) 
    tid = TxtTokenId.Text 
    Dim client As ServiceRef.DemoService() 
    Dim DataSet As client.GetEmployees(sid, cid, tid) 
    Dim ds As DataSet 
    'Dim StringReader sr As New StringReader(data)' 
    'Dim DataSet ds As New DataSet(data)' 
    Dim ds.ReadXml(ds) 
    'string st = Server.MapPath("XMLFile.xml")' 
    Dim Data.WriteXml(Data) 

End Sub 
+0

從WCF服務返回數據集通常被認爲是不好的做法 - 返回自定義對象(或自定義對象的集合)相反,因爲這將保持互操作性。另外,你有沒有看過* DataSet在序列化時的樣子? – Tim

+0

[ReadXml()](http://msdn.microsoft.com/en-us/library/system.data.dataset.readxml%28v=vs.110%29.aspx)是屬於「DataSet」類 - 你試圖聲明方法(並且你試圖傳遞一個'DataSet'作爲參數,你不能這麼做)。你可以同時發佈'GetEmployees()'的實現和你試圖生成的XML(即它應該是什麼樣子)? – Tim

+0

請你可以在代碼中做到這一點我不明白你在問什麼我不能改變WCF它的要求 –

回答

1

不知道這會工作(沒有測試它,並沒有時間去),但是這可能讓你在正確的方向前進:

Dim cid As Int32 
Dim sid As Int32 
Dim tid As String 
sid = Convert.ToInt32(TxtSiteId.Text) 
cid = Convert.ToInt32(TxtCompId.Text) 
tid = TxtTokenId.Text 
Dim client As New ServiceRef.DemoService() 
Dim ds As DataSet 

client.Open() 
ds = client.GetEmployees(sid, cid, tid) 
ds.WriteXml(Server.MapPath("XMLFile.xml")) 

client.Close() 

Dim用於聲明指定類型的變量。它不用於調用對象上的方法(儘管方法的返回可以在Dim語句中分配)。

聲明和在Dim語句初始化變量的一個例子是線之上:

Dim client As New ServiceRef.DemoService() 
+0

'ds = client.GetEmployees(sid,cid,tid)'give error'「value類型'字符串'不能轉換爲'System.Data.DataSet''' –

+0

然後'GetEmployees'返回一個字符串,而不是DataSet。在你問之前,沒有簡單的方法將字符串轉換爲DataSet。 – Tim

+0

然後我用什麼來代替數據集,我想把getemployee的值變成xml –

相關問題