Как вернуть тип данных JSON в ashx - PullRequest
0 голосов
/ 29 ноября 2018

Я ищу способ экспорта данных в стиле JSON.Пожалуйста, покажите мне путь

<%@ WebHandler Language="C#" Class="API" %>

using System;
using System.Web;
using System.Data;
using System.Data.SqlClient;
using System.IO;
using Newtonsoft.Json;
using System.Collections.Generic;
using Newtonsoft.Json.Linq;
using System.Web.Script.Serialization;
public class User
{
    public string type { get; set; }
    public string user { get; set; }
    public string pass { get; set; }

}
public class API : IHttpHandler
{

public void ProcessRequest(HttpContext context)
{
    context.Response.ContentType = "text/plain";
    string strJson = new StreamReader(context.Request.InputStream).ReadToEnd();
    User user = JsonConvert.DeserializeObject<User>(strJson);
    string str = System.Configuration.ConfigurationManager.ConnectionStrings["conStr"].ConnectionString, json = "";
    if (user.type != null && user.user != null && user.pass != null)
    {
        SqlConnection con = new SqlConnection(str);
        SqlCommand cmd = new SqlCommand();
        cmd.Connection = con;
        cmd.CommandText = "SELECT ID,UserName From Partner Where UserName=@UserName And PassWord=@Pass";
        cmd.Parameters.Add("@UserName", SqlDbType.VarChar, 100).Value = user.user;
        cmd.Parameters.Add("@Pass", SqlDbType.NVarChar, 100).Value = user.pass;
        if (ConnectionState.Closed == con.State)
            con.Open();
        DataTable datatable = new DataTable();
        SqlDataAdapter sqlDataAdapter = new SqlDataAdapter(cmd);
        con.Close();
        sqlDataAdapter.Fill(datatable);
        if (datatable.Rows.Count > 0)
        {
            foreach (DataRow dr in datatable.Rows)
                //My data return;
        }
    }
}

Наконец, я хочу вернуть данные JSONMy Code HTML/Javascript

Пожалуйста, помогите мне решить проблему!Спасибо

Ответы [ 2 ]

0 голосов
/ 04 декабря 2018

Я думаю, что вы должны использовать веб-API.Подробнее на https://docs.microsoft.com/en-us/aspnet/web-api/overview/getting-started-with-aspnet-web-api/using-web-api-with-aspnet-web-forms

0 голосов
/ 29 ноября 2018
if (user != null)
    {
        if (user.type != null && user.user != null && user.pass != null)
        {
            SqlConnection con = new SqlConnection(str);
            SqlCommand cmd = new SqlCommand();
            cmd.Connection = con;
            cmd.CommandText = "SELECT ID,UserName From Partner ";
            //Where UserName=@UserName And PassWord=@Pass
            //cmd.Parameters.Add("@UserName", SqlDbType.VarChar, 100).Value = user.user;
            //  cmd.Parameters.Add("@Pass", SqlDbType.NVarChar, 100).Value = user.pass;
            if (ConnectionState.Closed == con.State)
                con.Open();
            SqlDataAdapter sqlDataAdapter = new SqlDataAdapter(cmd);
            con.Close();
            sqlDataAdapter.Fill(datatable);
            int i = 0;
            if (datatable.Rows.Count > 0)
            {
                foreach (DataRow dr in datatable.Rows)
                {
                    json += "A" + i + ":{ID:'" + dr["ID"] + "',User:'" + dr["UserName"] + "'},";
                    i++;
                }
                json = json.Remove(json.Length - 1);
                json += "}";
                JObject json2 = JObject.Parse(json);
                context.Response.Write(json2);
                return;
            }
            else
                json = "{'result':'false'}";
        }
        else
            json = "{'result':'false'}";
        JObject json3 = JObject.Parse(json);
        context.Response.Write(json3);
        return;
    }
...