Member 14836995 Ответов: 2

Как вернуть данные json при заполнении страницы веб-сервиса


I want to return json data when filled the webservice page?




public class WebService1 : System.Web.Services.WebService
    {
        SqlConnection cn = new SqlConnection(ConfigurationManager.ConnectionStrings["cnn"].ConnectionString);
        [WebMethod]
        [ScriptMethod(ResponseFormat = ResponseFormat.Json)]
        public string InsertData(string fname, string mname, string lname, string emailid, string password, string contactno, string hobby, string address, string countrycodenum)
        {
            cn.Open();
            string data = "";
            string insertquery = "insert into tblstudent(fname, mname, lname, emailid, password, contactno,hobby,address,countrycodenum)values(@fname,@mname,@lname,@emailid,@password,@contactno,@hobby,@address,@countrycodenum)";

            SqlCommand cmd = new SqlCommand(insertquery, cn);
            //cmd.CommandType = CommandType.Text;
            cmd.Parameters.AddWithValue("@fname", fname);
            cmd.Parameters.AddWithValue("@mname", mname);
            cmd.Parameters.AddWithValue("@lname", lname);
            cmd.Parameters.AddWithValue("@emailid", emailid);
            cmd.Parameters.AddWithValue("@password", password);
            cmd.Parameters.AddWithValue("@contactno", contactno);
            cmd.Parameters.AddWithValue("@hobby", hobby);
            cmd.Parameters.AddWithValue("@address", address);
            cmd.Parameters.AddWithValue("@countrycodenum", countrycodenum);

            int i = cmd.ExecuteNonQuery();
            if (i > 0)
            {
                Console.WriteLine("Insert Successfully");
            }
            else
            {
                Console.WriteLine("Not Insert Successfully");
            }
            cn.Close();

            return data;
        }
    }
}
икс

I add this line for return the json data


[ScriptMethod(ResponseFormat = ResponseFormat.Json)]

when I inserted the data using webservice and click the Invoke Button of the webservice page then data is not display?


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

I add this line for return the json data but json data is not displayed

[ScriptMethod(ResponseFormat = ResponseFormat.Json)

2 Ответов

Рейтинг:
0

MadMyche

Метод, который вы объявили настройки, чтобы возвратить строку.
Этот метод также определяет строку с именем данные, и заполняется как пустая строка.
Конец рутины делает возвращение этого же самого данные переменная.

Проблема вот в чем... data никогда не определяется как что-либо, кроме пустой строки.


Member 14836995

привет Мадмыч

строковые данные = fname + mname + lname + emailid + пароль + contactno + хобби +
адрес + countrycodenum;

окно наблюдения

данные "rajumakvanadineshrahulaxay@gmail.com123451234567890cricketsuratuzbekistan - струна


но проблема не в том, чтобы вернуть правильные данные

MadMyche

Это данные, которые вы передаете в метод, а не значение параметра. data переменная, которую вы объявили, определили и вернули в нее

string data = "";  // line  9

return data;       // line 35

Member 14836995

Привет Мадмыч

можете ли вы дать какое-либо решение для этого и как решить эту проблему

Я хочу преобразовать объект string data в объект json data object

MadMyche

Я бы сделал это довольно близко к структуре MVC:
1. Создайте класс Student со свойствами.
2. Заполните этот класс входящими значениями для создания объект пример.
3. Сохранить объект в БД
4. Используйте сериализатор JSON для возврата объекта

Рейтинг:
0

F-ES Sitecore

[System.Web.Script.Services.ScriptService]
public class WebService1 : WebService
{
    [WebMethod]
    [ScriptMethod(ResponseFormat = ResponseFormat.Json)]
    public void InsertData(string fname, string mname, string lname, string emailid, string password, string contactno, string hobby, string address, string countrycodenum)
    {
        // create anonymous type with the data
        var data = new { fname, mname, lname, emailid, password, contactno, hobby, address, countrycodenum };

        // serialise that data to JSON
        string json = (new System.Web.Script.Serialization.JavaScriptSerializer()).Serialize(data);

        // write it to the response stream
        Context.Response.Write(json);
    }
}