asp.net做的Web Service client端(实现查询功能)client端的代码有问题,请各位高手进来帮我看看!
WebService server端测试已经通过 代码如下:
<%@ WebService Language="C#" Class="chaxun" %>
using System;
using System.Data;
using System.Data.SqlClient;
using System.Web.Services;
public class chaxun:WebService{
//提供查询服务
[WebMethod]
//参数keyword为查询的关键字
public DataSet GetResult(String keyword){
// 连接到本地计算机的search数据库
SqlConnection cn=new
SqlConnection("server=localhost;initial
catalog=search;uid=sa;password=sa");
// 构造SQL语句,该语句用于查询企业信息
String strSQL="select * from Threads where Subject
like @Subject and IsGood='1'";
//创建SqlDataAdapter对象
SqlDataAdapter myCommand = new
SqlDataAdapter(strSQL,cn);
//在Parameters集合中添加@Subject参数,类型为
SqlDbType.NVarChar,大小为40
myCommand.SelectCommand.Parameters.Add(new
SqlParameter("@Subject",SqlDbType.NVarChar,40));
//把keyword(接受WebService client端输入的查询关键字
)赋给@Subject参数
//myCommand.Parameters["@Subject"].Value= "%" +
Subject.Text + "%" ;
myCommand.SelectCommand.Parameters["@Subject"].Value=k
eyword;
DataSet ds = new DataSet();
myCommand.Fill(ds,"Threads");
return ds;
}
}
这个是Client端的代码: 命名空间设定为ChaXun,代理类为
:WebChaXun.cs bin目录下为:chaxun.dll
当运行这个页面是提示 DataSet myDataSet =
d.GetResult(String keyword);有错误
是不是keyword = String(Subject.Text);这句有问题,写的不
对
输入的查询关键字怎样才能传递到Server端呢?
由于本人刚刚接触这方面的知识,有很多不懂的地方,希望各位
高手指教,表示感谢!
<%@ Import Namespace="ChaXun" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.SqlClient" %>
<html>
<script language ="C#" runat ="server" >
String keyword;
//查询的触发函数
public void Search_Click(Object sender,
EventArgs E)
{
try
{
keyword =
String(Subject.Text);
}
catch (Exception){}
//生成查询服务的类
chaxun d = new chaxun();
DataSet myDataSet = d.GetResult(String
keyword);
dgCust.DataSource=myDataSet.Tables["Threads"].DefaultV
iew;
dgCust.DataBind();
}
</script>
<body style="font: 10pt verdana">
<form runat="server">
请输入关键字:
<asp:TextBox id="Subject" runat="server" />
<asp:RequiredFieldValidator id="RFV"
ControlTOValidate="Subject"
Display="dynamic" runat="server">不能为空
</asp:RequiredFieldValidator>
<asp:Button text="查询" OnClick="Search_Click"
runat="server" />
<br><br>
<asp:DataGrid id="dgCust" runat="server"
Width="100%" BackColor="#ccccff"
BorderColor="black" ShowFooter="false"
CellPadding=3 CellSpacing="0"
Font-Name="Verdana" Font-Size="8pt"
HeaderStyle-BackColor="#aaaadd"
AutoGenerateColumns="false"
MaintainState="false">
<Columns>
<asp:HyperLinkColumn HeaderText="企业名称"
DataTextFormatString="{0}"
DataTextField="Subject"
DataNavigateUrlField="ThdId"
DataNavigateUrlFormatString="getthd.aspx?thdid={0}"
Target="_blank" />
<asp:BoundColumn HeaderText="联系人"
DataField="Name" />
<asp:BoundColumn HeaderText="联系电话"
DataField="Tel" />
<asp:BoundColumn HeaderText="公司地址"
DataField="Address" />
</Columns>
</asp:DataGrid>
</form>
</body>
</html>