数据库有一个Person表,那么,我们做一个person实体。在webservice里面写一个发布方法,发布一个查询方法,可能查询结果有很多个Person,所以应该返回一个数组,问题在于,数组不定长,所以应该使用ArrayList做一下中转,之后调用toArray()方法变成Person[],即return (Person[])result.toArray(typeof(person)).
代码如下:
Person.cs

using
System;

using
System.Data;

using
System.Configuration;

using
System.Web;

using
System.Web.Security;

using
System.Web.UI;

using
System.Web.UI.WebControls;

using
System.Web.UI.WebControls.WebParts;

using
System.Web.UI.HtmlControls;



/**/
/// <summary>

/// Person 的摘要说明

/// </summary>

public
class
Person


...
{

private int _personID;

public int PersonID


...{

get


...{

return this._personID;

}

set


...{

this._personID = value;

}

}

private string _name;

public string Name


...{

get


...{

return this._name;

}

set


...{

this._name = value;

}

}

private string _birthday;

public string Birthday


...{

get


...{

return this._birthday;

}

set


...{

this._birthday = value;

}

}


public Person()


...{

}



public Person(string pname,string pbirthday)


...{

this._name = pname;

this._birthday = pbirthday;

}


public Person(DaTarow record)


...{

this._personID = Convert.ToInt16(record["personID"]);

this._name = record["name"].ToString();

this._birthday = record["birthday"].ToString();

}

}

Service.cs

using
System;

using
System.Web;

using
System.Web.Services;

using
System.Web.Services.Protocols;

using
System.Data;

using
System.Data.sqlClient;

using
System.Data.sql;

using
System.Data.sqlTypes;

using
System.Collections;


[WebService(Namespace
=
"
http://tempuri.org/
"
)]

[WebServiceBinding(ConformsTo
=
WsiProfiles.BasicProfile1_1)]

public
class
Service : System.Web.Services.WebService


...
{

public const string ConnString = @"Data Source=.sqlEXPRESS;AttachDbFilename=C:Documents and SettingszhouluMy DocumentsVisual Studio 2005WebSiteswsApp_DataFamily.mdf;Integrated Security=True;User Instance=True";


public Service () ...{


//如果使用设计的组件,请取消注释以下行

//InitializeComponent();

}


[WebMethod]


public string HelloWorld() ...{

return "Hello World";

}


[WebMethod]

public Person[] FindPerson(string Name)


...{

ArrayList result = new ArrayList();

using(sqlConnection conn = new sqlConnection(ConnString))

using (sqlCommand dataCommand = new sqlCommand("dbo.findbyname", conn))


...{

//dataCommand.Parameters.Add("@name", name);

dataCommand.CommandType = CommandType.StoredProcedure;

dataCommand.Parameters.AddWithValue("@name", Name);

sqlDataAdapter dataAdapter = new sqlDataAdapter(dataCommand);

DataTable data = new DataTable();

dataAdapter.Fill(data);


for (int i = 0; i < data.Rows.Count; i++)


...{

result.Add(new Person(data.Rows[i]));

}

}


return (Person[])result.ToArray(typeof(Person));/**////////////问题所在

}

}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。