当我从.Aspx.Cs文件调用方法到Webservice.Cs时,为什么会出现错误? [英] Why I Get An Error When I Call A Method From .Aspx.Cs File To Webservice.Cs ?

查看:101
本文介绍了当我从.Aspx.Cs文件调用方法到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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆