c # asp.net jQuery AJAX Извлечение данных из MySQL - PullRequest
0 голосов
/ 10 мая 2018

Чтобы объяснить, что хотите сделать. Это (версия 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 (вер. 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 (). Вы видите, где проблема?

Ответы [ 2 ]

0 голосов
/ 19 мая 2018

[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 "";
      }
    }
}
0 голосов
/ 10 мая 2018

Ваш WebMethod должен быть статическим попробовать ...

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