如何在MySQL查询中使用jQueryUI(变量)

时间:2015-09-08 20:36:37

标签: c# jquery mysql asp.net jquery-ui-datepicker

我已经在我的WebForm上放置了一个jQueryUICalendar控件,其中我希望所述表单的用户能够选择(开始)日期和(结束)日期。我需要用户选择将那些(日期)值传递给MySQL(作为变量),以便查询需要在用户按下表单上的按钮时运行。我的代码如下:

- jQuery代码 -

    <form id="form1" runat="server">
    <link rel="stylesheet" href="//code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css">
    <script src="//code.jquery.com/jquery-1.10.2.js"></script>
    <script src="//code.jquery.com/ui/1.11.4/jquery-ui.js"></script>
    <link rel="stylesheet" href="/resources/demos/style.css">
    <script type="text/javascript" >
        $(function(){
             $("startDate").datepicker({ dateFormat: 'yy-mm-dd' });
             $("endDate").datepicker({ dateFormat: 'yy-mm-dd'   }).bind("change",function(){

    var minValue = $(this).val();
    minValue = $.datepicker.parseDate("yy-mm-dd", minValue);
    minValue.setDate(minValue.getDate()+1);
    $("#to").datepicker( "option", "minDate", minValue );

    var startDate = $(this).datepicker( "jQueryUICalendar1.Text");
    var endDate = $(this).datepicker( "jQueryUICalendar2.Text");

       })

    });
</script>

现在我正在使用的MySQL c0de:

<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString %>" ProviderName="<%$ ConnectioNStrings:ConnectionString.ProviderName %>" SelectCommand="SELECT stamp as 'Date', order_No as 'Order #', places.label as 'Location' FROM order_info, places WHERE originating_places_id = '123' and places.label = 'Detroit, MI' and stamp between '20150101' and now();">

<SelectParameters>
<asp:QueryStringParameter Name="sDate" QueryStringField="order_stamp" DbType="Date" />
<asp:QueryStringParameter Name="eDate" QueryStringField="order_stamp" DbType="Date" />
</SelectParameters>

^并且只要我内联代码查询,一切都按预期工作。我尝试做以下事情的那一刻:

例如,在@sDate@eDate之间盖章

查询失败。此外,似乎SQL根本不承认日期选择器。我确定 - 它&#39; sb / c我会对此采取所有noob风格,但是----如果你们其中一个C#/ jQueryUI / MySQL大师那里可以告诉我我的意思#39;我做错了,非常感谢。

1 个答案:

答案 0 :(得分:0)

试试这个:

protected void btnUpdateData_Click(object sender, EventArgs e)
{
    String startDate = jQueryUICalendar1.text; 
    String endDate = jQueryUICalendar2.text;
    DataSet ds = getData(startDate, endDate);
    if(ds != null and ds.tables.count > 0){
        bindGrid(ds.Tables[0]);
    }
}

Private DataSet getData(string sDate, string eDate){
    DataSet ds = default(DataSet);
    SqlConnection cnx = new SqlConnection("ConnectionString");
    String query = "SELECT stamp as 'Date', order_No as 'Order #', places.label as 'Location' FROM order_info, places WHERE originating_places_id = '123' and places.label = 'Detroit, MI' and stamp between '@sDate' and '@eDate'";
   SqlCommand cmd = new SqlCommand(query, cnx);
   cmd.CommandType = CommandType.Text;
   cmd.Parameters.AddWithValue("@sDate", sDate);
   cmd.Parameters.AddWithValue("@eDate", eDate);
   sqlDataAdapter da = New SqlDataAdapter(cmd);
   try{
        cnx.Open();
        da.Fill(ds);
        cnx.Close();            }
    }
    catch (Exception ex)
    {
        Debug.Print(ex.Message);
    }
    finally
    {
        if (cnx != null) cnx.Close();
    }

    return ds;
}

private void bindGrid(DataTable dt){
    gridView.DataSource = dt;
    gridView.DataBind();
}