【问题标题】:Returning Value(all fields) from Datatable to AJAX in ASP.NET C#在 ASP.NET C# 中从 Datatable 返回值(所有字段)到 AJAX
【发布时间】:2018-06-13 15:12:00
【问题描述】:

我已经在网上搜索过,但我没有找到答案,也许你们可以帮忙。我是 ASP.NET C# 的新手

我的 aspx.cs 代码

[WebMethod]
[ScriptMethod]
public static string GetData(int ID)
{
    string SQL = "Select ID, FirstName, MiddleName, LastName from tbl_demo1 where ID = '" + ID + "'";
    DataTable dt = new DataTable();
    SqlDataAdapter da = new SqlDataAdapter(SQL, cn);
    da.Fill(dt);
    if(dt.Rows.Count > 0)
    {
        return dt.Rows[0].ItemArray[0].ToString();
    }
    return "";
}

问题:在这部分

return dt.Rows[0].ItemArray[0].ToString();

在这部分我想返回所有字段(ID、FirstName、MiddleName、LastName).. 我该怎么做?

【问题讨论】:

  • 您想只返回一行还是返回所有行?
  • 我只想返回一行

标签: asp.net-ajax


【解决方案1】:

这是您询问的代码部分:

if (dt.Rows.Count > 0)
{
   DataRow row = dt.Rows[0];
   string str = row["ID"].ToString() + row["FirstName"].ToString() + row["MiddleName"].ToString() + row["LastName"].ToString();
   return str;
}

如果要将其作为 KVP 数组返回,请使用如下方式

SortedList<string, string> rowObj = new SortedList<string, string>();
rowObj.Add("ID", row["ID"].ToString());
rowObj.Add("FirstName", row["FirstName"].ToString());
rowObj.Add("MiddleName", row["MiddleName"].ToString());
rowObj.Add("LastName", row["LastName"].ToString());
return (new JavaScriptSerializer().Serialize(rowObj));

可以使用jQuery调用:

jQuery.ajax({
    type: "POST",
    url: "YourFileService.asmx/GetData",
    data: "{'ID':" + ID + "}",
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    success: function (data) {
        if (typeof data.d != "undefined") {
            var res = JSON.parse(data.d);
            alert(res.FirstName)
        } else {
            if (window.console) {
                console.log('Unknown error,');
            }
        }
    },
    error: function (xhr, errorType, exception) {
        //raise an error
        alert(xhr.responseText);
    },
    failure: function (response) {
        //failure, raise an error
        alert(response.responseText);
    }
});

【讨论】:

  • 谢谢它的工作原理.....我怎么能像这样从 jquery 调用它?alert(data.Firstname)
  • 如果我使用 url:“YourFileService.aspx/GetData”而不是 url:“YourFileService.asmx/GetData”可以吗??它说未定义
  • 只需将其更改为您具有功能的文件名即可。如果使用 URL,则会出现跨域问题。
  • 它说警报(res.FirstName)的“未定义”
  • 你能不能通过更新这一行试试看:var res = JSON.parse(data.d);
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-04-14
  • 2020-10-28
  • 1970-01-01
  • 1970-01-01
  • 2019-04-28
相关资源
最近更新 更多