Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net Jquery Ajax JSON数据读取不起作用_Asp.net_Jquery - Fatal编程技术网

Asp.net Jquery Ajax JSON数据读取不起作用

Asp.net Jquery Ajax JSON数据读取不起作用,asp.net,jquery,Asp.net,Jquery,我试图从SQL server DB中检索数据并将其转换为JSON,并尝试使用JQuery Ajax函数显示JSON数据,下面是C代码 C# GetJSONString(dTable)函数工作正常,下面是JQuery代码 jQuery&HTML <form id="form1" runat="server"> <div> <h1>JSON Sample</h1> <button id="getda

我试图从SQL server DB中检索数据并将其转换为JSON,并尝试使用JQuery Ajax函数显示JSON数据,下面是C代码

C#

GetJSONString(dTable)函数工作正常,下面是JQuery代码

jQuery&HTML

    <form id="form1" runat="server">
    <div>
        <h1>JSON Sample</h1>
        <button id="getdata">Get Data</button>
        <div id="company"></div>
<%--        <asp:Button ID="aspbutton" runat="server" Text=".Net Call" OnClick="btnOn_Click" />
        <asp:GridView runat="server" ID="grdview"></asp:GridView>--%>
    </div>
    <script type="text/javascript">        
        $(document).ready(function () {
            $("#getdata").click(function () {                
                $.ajax({
                    type: "POST",
                    contentType: "application/json; charset=utf-8",
                    data: "",
                    url: "Default.aspx/GetData",
                    dataType: "json",
                    success: function (data) {
                        alert(data.d);
                        $("#company").html(data.d);
                    }
                });
            });
        });
    </script>
    </form>

JSON示例
获取数据
$(文档).ready(函数(){
$(“#getdata”)。单击(函数(){
$.ajax({
类型:“POST”,
contentType:“应用程序/json;字符集=utf-8”,
数据:“,
url:“Default.aspx/GetData”,
数据类型:“json”,
成功:功能(数据){
警报(数据d);
$(“#公司”).html(data.d);
}
});
});
});
我已经包括了jQuery文件,如果我有任何错误,请告诉我

编辑:添加了GetJSONString

公共静态字符串GetJSONString(DataTable Dt) { string[]StrDc=新字符串[Dt.Columns.Count]; string HeadStr=string.Empty

    for (int i = 0; i < Dt.Columns.Count; i++)
    {
        StrDc[i] = Dt.Columns[i].Caption;
        HeadStr += "\"" + StrDc[i] + "\" : \"" + StrDc[i] + i.ToString() + "¾" + "\",";
    }


    HeadStr = HeadStr.Substring(0, HeadStr.Length - 1);


    StringBuilder Sb = new StringBuilder();
    Sb.Append("{\"" + Dt.TableName + "\" : [");


    for (int i = 0; i < Dt.Rows.Count; i++)
    {
        string TempStr = HeadStr;
        Sb.Append("{");


        for (int j = 0; j < Dt.Columns.Count; j++)
        {
            switch (Dt.Columns[j].DataType.ToString())
            {
                case "System.DateTime":
                    DateTime cv = (DateTime)Dt.Rows[i][j];
                    TempStr = TempStr.Replace(Dt.Columns[j] + j.ToString() + "¾", cv.Year + "," + (cv.Month - 1) + "," + cv.Day + "," + cv.Hour + "," + cv.Minute + "," + cv.Second + "," + cv.Millisecond);
                    break;


                case "System.Boolean":
                    TempStr = TempStr.Replace(Dt.Columns[j] + j.ToString() + "¾", Dt.Rows[i][j].ToString().ToLower());
                    break;


                default:
                    string str = Dt.Rows[i][j].ToString();
                    str = str.Replace("\n", "\\\\n");
                    str = str.Replace("\\", "\\\\\\\\");
                    str = str.Replace("\"", "ppp");
                    str = str.Replace("'", "\\\'");
                    str = str.Replace("\r", "\\\\r");


                    TempStr = TempStr.Replace(Dt.Columns[j] + j.ToString() + "¾", str);
                    break;
            }
        }


        Sb.Append(TempStr + "},");
    }


    Sb = new StringBuilder(Sb.ToString().Substring(0, Sb.ToString().Length - 1));
    Sb.Append("]}");


    return Sb.ToString();
}
for(int i=0;i

我在Ajax调用中添加了error:section,现在得到了error“error;[对象对象]“

最后,我发现了问题所在,我必须在asp.net函数之前添加
”[WebMethod()]”“
声明。例如

    [WebMethod()]
    public static string GetData()
    {

        try
        {
            string strjson;
            string connectionstring = ConfigurationManager.ConnectionStrings["ConString"].ConnectionString;
            SqlConnection Con = new SqlConnection(connectionstring);
            DataSet DS = new DataSet();
            String CmdText = "Select Compname,compadd1,compadd2,compemail from aas_company where compid=@cmpid";
            SqlCommand cmd = new SqlCommand(CmdText, Con);
            cmd.Parameters.Add("@cmpid", SqlDbType.Int).Value = 22;
            Con.Open();
            SqlDataAdapter DA = new SqlDataAdapter(cmd);
            DA.Fill(DS);
            DataTable dTable = DS.Tables[0];
            strjson = GetJSONString(dTable);
            Con.Close();               
            return strjson;
        }
        catch (Exception ex)
        {
            throw new System.Exception("Error In Get Data" + ex.Message);
        }
    }
    [WebMethod()]
    public static string GetData()
    {

        try
        {
            string strjson;
            string connectionstring = ConfigurationManager.ConnectionStrings["ConString"].ConnectionString;
            SqlConnection Con = new SqlConnection(connectionstring);
            DataSet DS = new DataSet();
            String CmdText = "Select Compname,compadd1,compadd2,compemail from aas_company where compid=@cmpid";
            SqlCommand cmd = new SqlCommand(CmdText, Con);
            cmd.Parameters.Add("@cmpid", SqlDbType.Int).Value = 22;
            Con.Open();
            SqlDataAdapter DA = new SqlDataAdapter(cmd);
            DA.Fill(DS);
            DataTable dTable = DS.Tables[0];
            strjson = GetJSONString(dTable);
            Con.Close();               
            return strjson;
        }
        catch (Exception ex)
        {
            throw new System.Exception("Error In Get Data" + ex.Message);
        }
    }