Asp.net Jquery Ajax JSON数据读取不起作用
我试图从SQL server DB中检索数据并将其转换为JSON,并尝试使用JQuery Ajax函数显示JSON数据,下面是C代码 C# GetJSONString(dTable)函数工作正常,下面是JQuery代码 jQuery&HTMLAsp.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
<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);
}
}