我有一个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();
}
答案 0 :(得分:1)
而不是[Date]
你应该使用MS SQL CONVERT函数:
CONVERT(varchar(10), [Date], 101)
101 = mm / dd / yyyy
您可以通过多种方式设置日期格式,所有这些都列在here
中