当我从.Aspx.Cs文件调用方法到Webservice.Cs时,为什么会出现错误? [英] Why I Get An Error When I Call A Method From .Aspx.Cs File To Webservice.Cs ?
问题描述
使用系统;
使用 System.Data;
使用 System.Web.Services;
public partial 类 ReportUI:System.Web.UI.Page
{
protected void Page_Load( object sender,EventArgs e)
{
}
受保护 void Show_Report( object sender,EventArgs e)
{
ShowData();
}
private void ShowData()
{
string ReportName = txtReportName.Text;
string DatasourceID = txtDataSourceID.Text;
WebService data = new WebService();
DataSet allData = new DataSet();
allData = data.GetResultThroughQuery(ReportName,DatasourceID);
}
}
使用系统;
使用 System.Linq;
使用 System.Web.Services;
使用 System.Collections.Generic;
使用 System.Data;
使用 System.Data.SqlClient;
[WebService(Namespace = http://tempuri.org/\")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
// 允许这个使用ASP.NET AJAX从脚本调用的Web Service取消注释以下行。
// [System.Web.Script.Services.ScriptService]
public class 服务:System.Web.Services.WebService
{
字符串 ConStr = Server = 192.168.241.2;数据库= BIModel;用户ID = Sa;密码= Nopass123;
public 服务(){
}
[WebMethod]
public DataSet GetResultThroughQuery( string ReportName, string DatasourceID)
{
DataSet dataSet = new DataSet();
return dataSet;
}
}
收到错误讯息像这样:'System.Web.Services.WebService'不包含'GetResultThroughQuery'的定义,并且没有可以找到接受类型'System.Web.Services.WebService'的第一个参数的扩展方法'GetResultThroughQuery'(你是否遗漏了) using指令或汇编引用?)
您是否在解决方案中插入了服务引用?
如果没有添加到您的解决方案中在webconfig文件中更改为
例如:
我的webservice方法:
[WebMethod]
public int insertRecord( string sName, string sAge, string sSalary, string sCountry , string sCity)
{
var con = new SqlConnection( ConnectionState());
con.Open();
var cmd = new SqlCommand( 插入EMaster(名称,年龄,薪水,国家,城市)值(' + sName + ',' + sAge + ',' + sSalary + ',' + sCountry + ',' + sCity + '),con);
int row = cmd.ExecuteNonQuery();
返回行;
}
和web.config:
< pre lang =xml> < applicationSettings >
< EmployeeDetails.Properties.Settings >
< 设置 name = EmployeeDetails_localhost_Service1 serializeAs = 字符串 >
< 值 > h ttp:// localhost:50656 / Service1.asmx < / value >
< / setting >
< / EmployeeDetails.Properties.Settings >
< / applicationSettings >
和代码behnd文件使用像这样
protected void Addbutton_Click(object sender,EventArgs e)
{
txtid.Enabled = false;
localhost.Service1 dbws = new localhost.Service1();
if((txtName.Text ==)||(txtage.Text ==)||(txtsalary.Text ==)||(txtcountry.Text ==)|| (txtcity.Text ==))
{Response.Write(< script> alert('Record not insert-Rows not not null');< / script>); }
else
{
int row = dbws.insertRecord(txtName.Text,txtage.Text,txtsalary.Text,txtcountry.Text,txtcity.Text);
if(row> 0)
{
Response.Write(< script> alert('Record insert successfuly');< / script>);
txtid.Text = txtName.Text = txtage.Text = txtsalary.Text = txtcountry.Text = txtcity.Text =;
getId();
FillGrid();
ddlSelect_SelectedIndexChanged(sender,e);
}
else {Response.Write(< script> alert('Record not insert');< / script>); }
}
}
service1是我的网络服务名称。
using System;
using System.Data;
using System.Web.Services;
public partial class ReportUI : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Show_Report(object sender, EventArgs e)
{
ShowData();
}
private void ShowData()
{
string ReportName = txtReportName.Text;
string DatasourceID = txtDataSourceID.Text;
WebService data = new WebService();
DataSet allData = new DataSet();
allData = data.GetResultThroughQuery(ReportName, DatasourceID);
}
}
using System;
using System.Linq;
using System.Web.Services;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
// To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line.
// [System.Web.Script.Services.ScriptService]
public class Service : System.Web.Services.WebService
{
String ConStr = "Server=192.168.241.2; Database=BIModel; User Id=Sa; password=Nopass123";
public Service () {
}
[WebMethod]
public DataSet GetResultThroughQuery(string ReportName, string DatasourceID)
{
DataSet dataSet=new DataSet();
return dataSet;
}
}
We get a error message like that: 'System.Web.Services.WebService' does not contain a definition for 'GetResultThroughQuery' and no extension method 'GetResultThroughQuery' accepting a first argument of type 'System.Web.Services.WebService' could be found (are you missing a using directive or an assembly reference?)
Have you inserted service refrence in your solution ?
If not add to your solution and make change in webconfig file as
eg:
my webservice method:
[WebMethod] public int insertRecord( string sName, string sAge, string sSalary, string sCountry, string sCity) { var con = new SqlConnection(ConnectionState()); con.Open(); var cmd = new SqlCommand("Insert into EMaster(Name,Age, Salary, Country,City) values( '" + sName + "','" + sAge + "','" + sSalary + "','" + sCountry + "','"+ sCity + "')", con); int row = cmd.ExecuteNonQuery(); return row; }
and web.config:
<applicationSettings> <EmployeeDetails.Properties.Settings> <setting name="EmployeeDetails_localhost_Service1" serializeAs="String"> <value>http://localhost:50656/Service1.asmx</value> </setting> </EmployeeDetails.Properties.Settings> </applicationSettings>
and in code behnd files use like this
protected void Addbutton_Click(object sender, EventArgs e) { txtid.Enabled = false; localhost.Service1 dbws = new localhost.Service1(); if ((txtName.Text == "") || (txtage.Text == "") || (txtsalary.Text == "") || (txtcountry.Text == "") || (txtcity.Text == "")) { Response.Write("<script>alert('Record not insert-Rows Cannot be null');</script>"); } else { int row = dbws.insertRecord(txtName.Text, txtage.Text, txtsalary.Text, txtcountry.Text, txtcity.Text); if (row > 0) { Response.Write("<script>alert('Record insert successfuly');</script>"); txtid.Text=txtName.Text = txtage.Text = txtsalary.Text = txtcountry.Text = txtcity.Text = ""; getId(); FillGrid(); ddlSelect_SelectedIndexChanged(sender, e); } else { Response.Write("<script>alert('Record not insert');</script>"); } } }
here service1 is my webservice name.
这篇关于当我从.Aspx.Cs文件调用方法到Webservice.Cs时,为什么会出现错误?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!