Nishant.Chauhan80 Ответов: 1

Как вернуть в строку методом проб и ошибок веб-веб-сервис, пожалуйста, помогите мне?


how to return into  void web method webservice error please help me?



<pre>[WebMethod]
    public void GetDaywiseData(string dep)
    {
        
        try
        {
             List<DataBind.DaywiseBind> binddata = new List<DataBind.DaywiseBind>();  
            string cs = ConfigurationManager.ConnectionStrings["sa"].ConnectionString;  
            using (SqlConnection con = new SqlConnection(cs))  
            {  
                SqlCommand cmd = new SqlCommand();  
                cmd.Connection = con;  
                cmd.CommandType = System.Data.CommandType.Text;
                cmd.CommandText = " select  a.doctor_nm AS DOCTORNAME,[dbo].[fn_docdays](doc_id) as DAYS,b.dept_nm AS DEPARTMENT from (select * from doctor_master) as a inner join (select * from deptmaster)as b on a.dept_cd = b.dept_cd where b.dept_nm = '"+dep+"'";  
                con.Open();  
                SqlDataReader rdr = cmd.ExecuteReader();  
                while (rdr.Read())  
                {  
                    DataBind.DaywiseBind getdata = new DataBind.DaywiseBind();  
                   
                   getdata.doctorname = rdr["DOCTORNAME"].ToString();
                   getdata.days = rdr["DAYS"].ToString();
                   getdata.department = rdr["DEPARTMENT"].ToString();
                   binddata.Add(getdata);  
                }  
            }  
  
            JavaScriptSerializer js = new JavaScriptSerializer();
            Context.Response.Write(js.Serialize(binddata));
           
        }  
        catch(Exception exc)
        {
               // MessageBox.Show("An error happened while processing your call");
            
           
        }


Что я уже пробовал:

i have bind gridview when consume webservice pass parameter value(dep) Error Cannot implicitly convert type 'void' to 'object' 
ServiceReference2.GMCHWebServiceSoapClient srv = new ServiceReference2.GMCHWebServiceSoapClient();

        //  var getdata = srv.GetDaywiseData(dep1);


          grdshowdata.DataSource = srv.GetDaywiseData(dep1); //error
          grdshowdata.DataBind();

Richard MacCutchan

На первый взгляд это означает, что переменная dep1 не был инициализирован. Я не вижу ссылки на него нигде в вашем коде выше.

F-ES Sitecore

Я нигде не вижу, чтобы вы "возвращали" строку из функции?

Nishant.Chauhan80

Простите, сэр пустоту вместо строки в метод

Nishant.Chauhan80

значение dropdownlist в dep1
моя ошибка "не может неявно преобразовать тип 'void' в 'object' "

1 Ответов

Рейтинг:
2

an0ther1

Ваша сигнатура метода не возвращает значение, поэтому вы не можете получить строку.
Сигнатура метода-это нижеприведенная часть...

public void GetDaywiseData(string dep)

Ключевое слово пустота это означает, что значение не будет возвращено - в VB6 это называется Sub.
Чтобы вернуть значение, вы должны изменить сигнатуру метода, чтобы определить тип возвращаемого значения - ниже возвращается строковое значение;
public string GetDaywiseData(string dep)

Основываясь на приведенном выше коде, самое простое решение заключается в следующем;
[WebMethod]
public DataTable GetDaywiseData(string dep)
{    
    try
    {         
        DataTable dtReturn;
        string cs = ConfigurationManager.ConnectionStrings["sa"].ConnectionString;  

        using (SqlConnection con = new SqlConnection(cs))  
        {  
            SqlCommand cmd = new SqlCommand();  
            cmd.Connection = con;  
            cmd.CommandType = System.Data.CommandType.Text;
            cmd.CommandText = " select  a.doctor_nm AS DOCTORNAME,[dbo].[fn_docdays](doc_id) as DAYS,b.dept_nm AS DEPARTMENT from (select * from doctor_master) as a inner join (select * from deptmaster)as b on a.dept_cd = b.dept_cd where b.dept_nm = '"+dep+"'";  
            con.Open();  
            SqlDataAdapter adap = new SqlDataAdapter(cmd);
            adap.Fill(dtReturn);
            
        } 
    return dtReturn;
}

Datatable будет возвращен из веб-сервиса, который затем устанавливается в качестве источника данных вашей сетки

с уважением