C# 在GridView中编辑时从日期类型列隐藏时间值

C# 在GridView中编辑时从日期类型列隐藏时间值,c#,asp.net,date,datetime,gridview,C#,Asp.net,Date,Datetime,Gridview,我有一个GridView,它将日期显示为“dd-mm-yyyy”,这正是我想要的,但编辑时我会得到“dd-mm-yyyy 00:00:00”。由于我使用的是日期数据类型,我不希望在编辑时包含时间,因为我的日期验证只接受“dd/mm/yyyy”。我是使用了错误的数据类型还是需要更改此行 <asp:TextBox ID="TextBox5" runat="server" Text='<%# Bind("GameDate") %>'></asp:TextBox>

我有一个GridView,它将日期显示为“dd-mm-yyyy”,这正是我想要的,但编辑时我会得到“dd-mm-yyyy 00:00:00”。由于我使用的是日期数据类型,我不希望在编辑时包含时间,因为我的日期验证只接受“dd/mm/yyyy”。我是使用了错误的数据类型还是需要更改此行

<asp:TextBox ID="TextBox5" runat="server" Text='<%# Bind("GameDate") %>'></asp:TextBox>

此GridView正在从数据库获取数据

Convert(varchar(30),GameDate,103) as GameDate
在数据库选择查询中使用转换函数。它将删除时间。

使用格式

<%# (DateTime.Parse(Eval("GameDate").ToString()).ToString("MM/dd/yyyy")) %>

我假设GridView字段是一个模板字段?如果是这样,请尝试一下:

  <asp:TemplateField HeaderText="Game Date" SortExpression="GameDate">
    <EditItemTemplate>
      <asp:TextBox ID="TextBox5" runat="server" Text='<%# Bind("GameDate","{0:MM-dd-yyyy}") %>' ID="TextBox1"></asp:TextBox>
    </EditItemTemplate>
    <ItemTemplate>
      <asp:Label runat="server" Text='<%# Bind("GameDate", "{0:MM-dd-yyyy}") %>' ID="Label1"></asp:Label>
    </ItemTemplate>
  </asp:TemplateField>


我得到了“方法'ToString'没有方法接受1个参数”的结果,但现在我有了错误参数1:现在无法从“对象”转换为“字符串”。当我编辑行并点击“更新”时,日期列变为空。然后,当我再次尝试编辑该行时,它会显示
字符串未被识别为有效的日期时间。
您必须同时使用此项和编辑项模板;您需要将概念性的put my select语句理解为[GameDate]DESC Convert(varchar(30),GameDate,103)从[MatchStats]顺序中选择*作为GameDate,但在Convert附近会出现语法错误消息,而不是选择*放置单个列名。convert函数需要放在select as select convert(varchar(30),gamedate,103)之后,…我这样做了
select convert(varchar(30),gamedate,103)作为gamedate,[Id],[HomeTeam],[AwayTeam],[HomeScore],[AwayScore],[gamedate],按[gamedate]的[MatchStats]顺序DESC
并通过[GameDate]DESC从[MatchStats]订单中获得“不明确的列名GameDate”
选择Convert(varchar(30),GameDate,103)作为GameDate,[Id],[HomeTeam],[AwayTeam],[HomeScore],[AwayScore],[GameDate>使用此查询可以从GridView中发布此字段的完整标记所有答案,这是一个正常工作的。