网格视图以MM-​​DD-YYYY格式显示日期格式

时间:2015-06-21 09:00:05

标签: c# sql asp.net sql-server gridview

我有一个gridview,可以在按钮点击时显示日期,具体取决于所选的复选框。我使用字符串连接来获取数据以管理UI上的动态更改。目前,它以此格式显示 - MM-DD-YYYY 12:00:00 AM,默认情况下我需要MM-DD-YYYY格式。

使用BoundField, DataFormatString="{0:d}" HtmlEncode="False",我得到了所需的输出,但我无法构建动态SQL连接字符串。我已经参考了教程和网站,但大多数人已经提供了具有固定SQL查询的解决方案,或者使用Gridview"选择数据源"选项。就我而言,由于它的动态查询,我猜不到我会选择数据源。

是否可以设置gridview的特定列属性以显示所需的格式。请建议。请与示例代码分享您的想法(将更有帮助)。

代码如下。附加了当前输出。

代码:

DataTable GetData(int Count)
{
    DataTable dt = new DataTable();
    string query = "SELECT [NAME], [Date], Duration FROM dbo.OnLeaveDetails WHERE @User = Username AND ";
    string whereClause = "[Leave Type] = ";

    if(CheckBox1.Checked)
        query += whereClause + "@" + <TYPE1>;
    ....
    ....

    Command = new SqlCommand(query, Conn);

    try
    {
        Conn.Open();
        Command.Parameters.Add("User", SqlDbType.NVarChar).Value = Username;

        if (CheckBox1.Checked)
            Command.Parameters.Add(<TYPE>, SqlDbType.NVarChar).Value = LeaveType[0];
        ....
        ....

        SqlDataAdapter adpt = new SqlDataAdapter(Command);
        adpt.Fill(dt);
        Conn.Close();
        return dt;
    }
    catch ()
    {....}
}

protected void Submit_Click(object sender, EventArgs e)
{
    GridView1.DataSource = GetData(count);
    GridView1.DataBind();
}

1 个答案:

答案 0 :(得分:1)

而不是[Date]你应该使用MS SQL CONVERT函数:

CONVERT(varchar(10), [Date], 101)

101 = mm / dd / yyyy

您可以通过多种方式设置日期格式,所有这些都列在here