简体   繁体   English

从MySQL获取数据的C#asp.net jQuery AJAX

[英]c# asp.net jQuery AJAX Fetch Data From MySQL

To explain what want to do. 解释要做什么。 This (ver 1.) work fine... 这个(ver 1.)工作正常...

Default.aspx (ver 1.) Default.aspx(版本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 (ver 1.) 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();


                }
            }
        }
    }
}

But when I use [WebMethod].... NOT WORK 但是当我使用[WebMethod]时....

Default.aspx (ver 2.) 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>

And in Data.aspx I remove FillList(); 然后在Data.aspx中删除FillList(); from Page_Load. 来自Page_Load。 Ajax don't wont call void FillList(). Ajax不会调用void FillList()。 Can you see where is problem? 你看哪里出问题了吗?

Your WebMethod needs to be static try... 您的WebMethod需要为静态尝试...

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

 [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 ""; } } } 

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM