asp.net发布wsdl参数是DataTable,那么java能调用吗?

by_封爱 2012-10-08 04:15:05
需求是这样的 手机安卓端 请求wsdl

返回datatable

然后显示 然后 修改里面的内容

在请求wsdl 把这个datatable传过去

然后我循环 批量更新


我现在没环境 因为我只负责写wsdl

我参数用datatable 可以么?

还有一wince端 参数用datatable应该没问题 但是 安卓那边怎么办呢???
...全文
175 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
by_封爱 2012-10-09
  • 打赏
  • 举报
回复
问题已经解决 最终方法是字符串json格式

然后在转换datatable

protected void Page_Load(object sender, EventArgs e)
{
string s="{ \"people\": [   { \"firstName\": \"Brett\", \"lastName\":\"McLaughlin\", \"email\": \"aaaa\" },   { \"firstName\": \"Jason\", \"lastName\":\"Hunter\", \"email\": \"bbbb\"},{ \"firstName\": \"Elliotte\", \"lastName\":\"Harold\", \"email\": \"cccc\" }]}";
g1.DataSource = JsonToDataTable(s);
g1.DataBind();

}
/// <summary>
/// 根据Json返回DateTable,JSON数据格式如:
/// {table:[{column1:1,column2:2,column3:3},{column1:1,column2:2,column3:3}]}
/// </summary>
/// <param name="strJson">Json字符串</param>
/// <returns></returns>
public static DataTable JsonToDataTable(string strJson)
{
//取出表名
var rg = new Regex(@"(?<={)[^:]+(?=:\[)", RegexOptions.IgnoreCase);
string strName = rg.Match(strJson).Value;
DataTable tb = null;
//去除表名
strJson = strJson.Substring(strJson.IndexOf("[") + 1);
strJson = strJson.Substring(0, strJson.IndexOf("]"));

//获取数据
rg = new Regex(@"(?<={)[^}]+(?=})");
MatchCollection mc = rg.Matches(strJson);
for (int i = 0; i < mc.Count; i++)
{
string strRow = mc[i].Value;
string[] strRows = strRow.Split(',');

//创建表
if (tb == null)
{
tb = new DataTable();
tb.TableName = strName;
foreach (string str in strRows)
{
var dc = new DataColumn();
string[] strCell = str.Split(':');
dc.ColumnName = strCell[0];
tb.Columns.Add(dc);
}
tb.AcceptChanges();
}

//增加内容
DataRow dr = tb.NewRow();
for (int r = 0; r < strRows.Length; r++)
{
dr[r] = strRows[r].Split(':')[1].Trim().Replace(",", ",").Replace(":", ":").Replace("\"", "");
}
tb.Rows.Add(dr);
tb.AcceptChanges();
}

return tb;
}

感谢
http://my.csdn.net/wiki14
winner2050 2012-10-08
  • 打赏
  • 举报
回复
还是传递实体类方便。

cykb518 2012-10-08
  • 打赏
  • 举报
回复
网络上参数或者结果可以传递复杂对象?好像都是序列化成字符串传递的吧
by_封爱 2012-10-08
  • 打赏
  • 举报
回复

using System;
using System.Collections;
using System.Linq;
using System.Web;
using System.Web.Services;
using System.Web.Services.Protocols;
using System.Xml.Linq;

/// <summary>
///WebService 的摘要说明
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
//若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消对下行的注释。
// [System.Web.Script.Services.ScriptService]
public class WebService : System.Web.Services.WebService {

public WebService () {

//如果使用设计的组件,请取消注释以下行
//InitializeComponent();
}

[WebMethod]
public System.Data.DataTable GetData(string id) {
string sql = "select * from [工序指标配置表$] where 工序编码='"+id+"'";
return dosoft.DAL.DbHelperSQL.GetTable(sql);
}
[WebMethod]
public void UpdateData(System.Data.DataTable dt)
{
for (int i = 0; i < dt.Rows.Count; i++)
{
string id = dt.Rows[i]["唯一序号"].ToString();
string result = dt.Rows[i]["检测结果"].ToString();
string sql = "update [工序指标配置表$] set 检测结果='"+result+"' where 唯一序号="+id;
dosoft.DAL.DbHelperSQL.ExecuteSql(sql);
}
}


}






以上是webservice


protected void b1_click(object o, EventArgs e)
{
test.WebService x = new test.WebService();
DataTable dt = x.GetData("30201");
GridView1.DataSource = dt;
GridView1.DataBind();
}
protected void b2_click(object o, EventArgs e)
{
test.WebService x = new test.WebService();
DataTable dt = x.GetData("30201");
for (int i = 0; i < GridView1.Rows.Count; i++)
{
string result = (GridView1.Rows[i].FindControl("t1") as TextBox).Text;
dt.Rows[i]["检测结果"] = result;
}
x.UpdateData(dt);
}



以上是调用的方法

虽然我在asp.net 或者winfrom里可以用 但是 拿到他安卓里 可以调用 可以传参吗?
xuan.ye 2012-10-08
  • 打赏
  • 举报
回复
不如用xml做参数来的好
  • 打赏
  • 举报
回复
java那边,可以有datatable ,只不过,需要自己写datatable的类 。
  • 打赏
  • 举报
回复
wsdl 是什么?

61,655

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧