我已经在我的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;我做错了,非常感谢。
答案 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();
}