【问题标题】:c# asp.net jQuery AJAX Fetch Data From MySQLc# asp.net jQuery AJAX 从 MySQL 获取数据
【发布时间】:2018-10-20 08:13:06
【问题描述】:

解释想做什么。 这(版本 1.)工作正常...

Default.aspx (ver 1.)

    <script type="text/javascript" src="jquery-3.3.1.min.js"></script>
<script type="text/javascript">

    $(document).ready(function () {
        setInterval(function () {
            $("#show").load("Data.aspx")
        }, 3000);
    });     
</script>     
<div id="show"></div>

Data.aspx(版本 1.)

  protected void Page_Load(object sender, EventArgs e)
{
    FillList();  
}

[WebMethod]

public void FillList()
{
string constr = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
    using (MySqlConnection con = new MySqlConnection(constr))
    {
        using (MySqlCommand cmd = new MySqlCommand("SELECT Name,Nick FROM dbBase ORDER BY id ASC"))
        {
            using (MySqlDataAdapter da = new MySqlDataAdapter())
            {
                cmd.Connection = con;
                da.SelectCommand = cmd;
                using (DataTable dt = new DataTable())
                {
                    da.Fill(dt);
                    GridView1.DataSource = dt;
                    GridView1.DataBind();


                }
            }
        }
    }
}

但是当我使用 [WebMethod].... 不工作

Default.aspx(版本 2.)

    <script type="text/javascript" src="jquery-3.3.1.min.js"></script>
<script type="text/javascript">

    $(document).ready(function () {
        setInterval(function () {
            $('#show').load()
            .$.ajax({
        url: "Data.aspx/FillList"
    }); 
        }, 3000);
    });
</script>
<div id="show"></div>

在 Data.aspx 中,我删除了 FillList();来自 Page_Load。 Ajax 不会调用 void FillList()。你能看出哪里有问题吗?

【问题讨论】:

  • 我不确定你是如何调用你的网络方法的。此外,WebMethods 需要是 webforms 中的静态方法。
  • 看看this article
  • 是的,正如@GaganDeep 所说,您需要将 FillList 方法声明为静态才能从 ajax 调用中调用它。

标签: c# jquery mysql asp.net webmethod


【解决方案1】:

您的 WebMethod 需要是静态尝试...

[WebMethod]
public static void FillList()
{
     ...
}

【讨论】:

    【解决方案2】:

    [webmethod(true)]
    public string FillList()
    {
    string str="";
    DataTable dt= new DataTable();
    string constr = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
        using (MySqlConnection con = new MySqlConnection(constr))
        {
            using (MySqlCommand cmd = new MySqlCommand("SELECT Name,Nick FROM dbBase ORDER BY id ASC"))
            {
                using (MySqlDataAdapter da = new MySqlDataAdapter())
                {
                    cmd.Connection = con;
                    da.SelectCommand = cmd;
                    da.fill(dt);
                }
            } 
          if(dt.row.count!=0 && dt!=null){
          return Newtonsoft.Json.JsonConvert.SerializeObject(dt);
          }
          else{
          return "";
          }
        }
    }

    【讨论】:

      猜你喜欢
      • 2015-12-24
      • 2015-11-11
      • 1970-01-01
      • 2014-05-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多