【问题标题】:pass values to an object to webservices webmethod C#将值传递给对象到 Web 服务 webmethod C#
【发布时间】:2012-01-26 20:11:16
【问题描述】:

我需要将一个对象作为参数传递给 web 服务 web 方法..我这样做没有问题..我面临的问题是..我需要知道我应该从哪里传递类的值

例如,我有一个类人,它有两个属性 firstname 和 lastname..

我将这个人对象传递给 webmethod 之类的东西

[webmethod]
public string setData(Person p)
    {
//insert firstname and last name to database
}

现在我的问题是我可以从哪里为 person 类分配值,以便我可以将它输入数据库?

谢谢

【问题讨论】:

  • 你的问题不清楚:你想知道如何将数据插入数据库吗? (标题是“将对象传递给 Web 服务 C#”,但您似乎已经知道该怎么做?)。您到底遇到了什么困难,您已经尝试解决什么问题?
  • 将值传递给 webmethod..就像如何将名字和姓氏传递给 webmethod.. 我也知道如何插入数据库.. 我的意思是我不是让测试方法将值作为对象传递是一种复杂类型..
  • 将复杂类型传递给 WCF 服务应该没有问题,只要它是可序列化的。您在尝试通过时遇到了哪些具体问题、错误或异常?
  • 我认为这就像实例化一个 Person 对象,设置该对象中的值,然后将该对象传递给该方法一样简单...您的服务或代码中是否存在异常阻止你这样做?

标签: c# asp.net web-services


【解决方案1】:

我认为你应该通过类将值传递给 webservice。您可以从类中提取值并发送到数据库查询。这将提高您添加和删除参数的效率。

fun ServiceCall()
{
    Person P
    P.fName='First Name'
    p.lName='Last Name'
    serviceClas.setData(P)
}

public string setData(Person p)    
{ 
    //insert firstname and last name to database 

    SqlCommand command = new SqlCommand();    
    SqlCommand command = new SqlCommand  ("Proc_name", connection);      
    command.CommandType = CommandType.StoredProcedure;    
    SqlParameter parameter1 = new SqlParameter();    
    parameter.ParameterName = "@Param1";     
    parameter.SqlDbType = SqlDbType.NVarChar;
    parameter.Direction = ParameterDirection.Input;     
    parameter.Value = P.fName; 
} 

【讨论】:

  • -1 是我见过的最糟糕的代码。使用fun,缺少分号,带单引号的字符串,创建命令两次但根本不执行它,我可以继续..
  • (不要太挑剔,毕竟你提出这个作为代码来帮助某人。它站不起来)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-07-06
  • 1970-01-01
  • 1970-01-01
  • 2023-03-06
相关资源
最近更新 更多