仅显示所选日期的记录

时间:2014-02-12 12:15:59

标签: c# asp.net sql calendar

我有一个搜索按钮,按下时会显示Calendar控件。 Calendar控件的原因是我有一个数据列表连接到sql数据源并返回Date之类的值。 我希望能够选择仅显示该特定日期的记录的日期

protected void btnSearch_Click(object sender, EventArgs e)
{
    this.Calendar1.Visible = true;
}

<asp:Calendar ID="Calendar1" runat="server" OnSelectionChanged="Calendar1_SelectionChanged" Visible="False"></asp:Calendar>

我怎样才能做到这一点?

3 个答案:

答案 0 :(得分:0)

试试这个

string queryString = "SELECT * FROM yourTableName WHERE DateColumn = '" + Calendar1.Value + '";

这是您的查询。现在执行此查询。

using (SqlConnection connection = new SqlConnection(connectionString))
{
    SqlCommand command = new SqlCommand(queryString, connection);
    connection.Open();
    SqlDataReader reader = command.ExecuteReader();
    try
    {
        while (reader.Read())
        {
            Console.WriteLine(String.Format("{0}, {1}",
                reader[0], reader[1])); // here reader[0] means first column in Table.
        }
    }
    finally
    {
        // Always call Close when done reading.
        reader.Close();
    }
}

答案 1 :(得分:0)

您可以在ControlParameter上使用SqlDataSource

http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.controlparameter.ASPX

默认情况下,属性名称将使用Calendar.SelectedDate,但如果您愿意,可以明确设置。

您的代码应类似于以下内容:

<asp:sqldatasource
          id="SqlDataSource1"
          runat="server"
          connectionstring="<%$ ConnectionStrings:MyNorthwind%>"
          selectcommand="SELECT Dates FROM Dates WHERE Date = @Date">
          <selectparameters>
              <asp:controlparameter name="Date" controlid="Calendar1" propertyname="SelectedDate"/>
          </selectparameters>
      </asp:sqldatasource>

答案 2 :(得分:0)

您需要什么时候帮忙?

  1. 如果您对如何获取该特定日期的记录感到困惑,只需将所选日期从日历控件作为parameter传递给SQL Stored Procedure并执行它以存储返回的数据进入DataTable。现在,您可以根据需要在代码隐藏中使用DataTable

  2. 如果您遇到日历控制问题,可以尝试使用Ajax CalenderExtender,这非常容易使用。

    <asp:CalendarExtender ID="CalenderDate_CalendarExtender" runat="server" PopupButtonID="btnSearch" Format="yyyy-MM-dd">
                                </asp:CalendarExtender>
    
  3. 现在点击btnSearch按钮将打开日历。您可以从代码隐藏中访问所选日期,如下所示

    DateTime date = CalenderDate_CalendarExtender.SelectedDate;
    

    您需要添加以下内容才能使日历扩展程序正常工作

        <asp:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server">
                    </asp:ToolkitScriptManager>
    

    这个

        <%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="asp" %>