繁体   English   中英

如何从文本框中获取dd / MM / yyyy格式的日期?

[英]how to get date in dd/MM/yyyy format from textbox?

我从查询的两个日期之间获取数据,但问题是文本框以YYYY / MM / dd格式获取数据,我需要将其转换为dd / MM / yyyy。

Start Date: <asp:TextBox ID="txtstart" runat="server" TextMode="Date" ></asp:TextBox>
End Date: <asp:TextBox ID="txtend" runat="server" TextMode="Date"></asp:TextBox>
<p>
  <asp:Button ID="btnfetch" runat="server" Text="Button" OnClick="btnfetch_Click1" />
</p>
<div>
  <asp:GridView ID="GridView2" runat="server">
  </asp:GridView>
</div>
using (SqlCommand cmd = new SqlCommand(
  "SELECT Name,Present from AttendanceRecords " + 
  "where Date between '" + txtstart.Text + "' and '" + txtend.Text + "' ", con))
{
    con.Open();   
    SqlDataAdapter da = new SqlDataAdapter(cmd);

    DataTable dt = new DataTable();
    da.Fill(dt);
    SqlDataReader rdr = cmd.ExecuteReader();
    if (rdr.Read())
    {
        GridView2.DataSource = dt;
        GridView2.DataBind();
    }
    else
    {
        lbldatercrd.Text = "NOT FOUND";
    }

阿迪尔,

  • 您应该始终使用参数来防止SQL注入攻击,
  • 预计您应该使用DateTime或DatePicker,TimePicker控件而不是文本框,但是暂时我将假定您以yyyy / MM / dd格式获取有效日期。
  • 如果日期值范围查询可能还会包含时间部分,则不应将BETWEEN用于日期时间范围查询。 但是这里看起来您只在处理日期,所以可能还可以。

DataAdapter将根据需要打开和关闭连接。

DateTime start, end;
if (DateTime.TryParse(txtStart.Text, out start) && DateTime.TryParse(txtEnd.Text, out end))
{
  string cmd = @"SELECT Name,Present 
      from AttendanceRecords   
      where [Date] between @start and @end";

  SqlDataAdapter da = new SqlDataAdapter(cmd, con);
  da.SelectCommand.Parameters.Add("@start", SqlDbType.DateTime).Value = start;
  da.SelectCommand.Parameters.Add("@end", SqlDbType.DateTime).Value = end;

  DataTable dt = new DataTable();
  da.Fill(dt);
  GridView2.DataSource = dt;
  GridView2.DataBind();
}
else
{
    lbldatercrd.Text = "NOT FOUND";
}

暂无
暂无

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

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