2014-01-30 93 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 –

相关问题