[webmethod]
上面的方法名称告诉我们,getempdetailsbyempid把employeeid作为参数并返回xmldocument形式的雇员详细信息。
public xmldocument getempdetailsbyempid(int employeeid)
{
string connstring = system.configuration.configurationsettings.
appsettings["connectionstring"];
上面的代码行使用configurationsettings类的appsettings属性从web.config文件的<appsettings>部分检索连接字符串。在web.config文件中连接字符串是这样定义的:
<appsettings>
<add key="connectionstring"
value="server=localhost;uid=sa;pwd=;database=northwind" />
</appsettings>
下面一行代码建立了sqlconnection对象的一个实例,给它传递了用于建立数据库连接的连接字符串:
sqlconnection sqlconnection = new sqlconnection(connstring);
接着你把所有的可执行代码封装在一个try...catch代码块中以处理执行后面的语句时可能发生的任何错误:
try
{
dataset employeedataset = new dataset("employeesroot");
sqldataadapter adapter = new sqldataadapter();
下一步,你建立了sqlcommand对象的一个实例,给它的构造函数传递你希望执行的sql语句和前面步骤中建立的sqlconnection对象:
sqlcommand command = new sqlcommand("select * from employees where employeeid =" + employeeid.tostring(),sqlconnection);
接着你把selectcommand属性设置为适当的值,表明你希望执行一个sql语句:
//设置sqlcommand对象的属性
command.commandtype = commandtype.text;
接着把sqldataadapter对象的selectcommand属性设置为前面建立的sqlcommand对象:
adapter.selectcommand = command;
现在使用fill方法,通过在数据源上执行前面指定的sql语句从数据源检索数据:
//用存储过程返回的值填充数据集
adapter.fill(employeedataset,"employees" );
一旦雇员信息成为数据集形式的,你就可以检索它的内容,并把它作为参数传递到xmldocument对象的loadxml方法中。最后,把该xmldocument对象返回到该web服务的调用者:
xmldocument xmldoc = new xmldocument();
xmldoc.loadxml(employeedataset.getxml());
return xmldoc;
}
catch (exception ex)
{
throw ex;
}
在最后的代码块中,你检查了state属性以验证connection(连接)是否仍然是打开的。如果连接仍然是打开的,你就通过调用该连接对象的close方法关闭它:
finally
{
if (sqlconnection.state == connectionstate.open)
{
sqlconnection.close();
}
}
}
现在你已经建立了web服务了,可以用鼠标右键点击employeeservice.asmx文件并选择build(建立)和browse(浏览)来测试它的功能。你得到的屏幕应该与下面的类似:
点击上面的屏幕中的方法名称(getempdetailsbyempid)将显示下面的屏幕:
如果你输入雇员id并点击invoke(调用)来调用该web服务方法,你将得到下面的输出:
现在你已经测试了该web服务了,你应该使用web服务行为从asp.net页面中调用它来试验它的功能了。
在asp.net页面中如何使用web服务行为调用web服务
在web页面中使用web服务行为的第一步是使用类似下面的语法把它嵌入页面代码:
<div id="service" style="behavior:url(webservice.htc)"></div>
上面的代码依赖ie 5(及以上版本)内建的行为功能来验证javascript文件的位置,而该文件被用于调用web服务。前面谈到,webservice.htc文件的位置必须与web页面的文件夹相同。我们要重点注意,行为文件的载入发生在客户端而不是服务器上。
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器