如何在gridview更新中设置日期

时间:2012-05-29 20:21:56

标签: asp.net .net vb.net gridview

我有这个问题。 使用Web Developer Express 2010的VB代码

使用来自访问的数据源。 我无法从一个gridview(调用GW)选择和更新... 我需要始终设置用户更新信息的日期。你怎么做的? 我想了几个主意。通过gridview列日期中的所有空值,设置为当前系统日期..不工作4我。 然后使用DefaultValue="<%= DateTime.Now.ToString() %>"

更新处理相同的问题

请问好吗?在此先感谢.. BR

`UpdateCommand="UPDATE [partes] SET [ESTATU] = ?,[SCONF] = ?, [SNOTES] = ?, [CONFDAT] = ?, [DCREA] = ?, [ASN] = ?, [ASNDATE] = ? WHERE [ID] = ?">

        <UpdateParameters>
            <asp:Parameter Name="ESTATU" />
            <asp:Parameter Name="SCONF" Type="String" />
            <asp:Parameter Name="SNOTES" Type="String" />
            <asp:Parameter Name="CONFDAT" Type="DateTime" />
            <asp:Parameter Name="DCREA" Type="DateTime" DefaultValue="<%= DateTime.Now.ToString() %>" />
            <asp:Parameter Name="ASN" Type="String" />
            <asp:Parameter Name="ASNDATE" Type="DateTime" />
            <asp:Parameter Name="original_ID" Type="Int32" />
        </UpdateParameters>`

这就是错误 '/'应用程序中的服务器错误。

字符串未被识别为有效的DateTime。

描述:执行当前Web请求期间发生了未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。

异常详细信息:System.FormatException:String未被识别为有效的DateTime。

来源错误:

在执行当前Web请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪来识别有关异常的起源和位置的信息。

3 个答案:

答案 0 :(得分:0)

有时问题是您的文化信息。当您的应用程序需要DD / MM / YYYY时,您的DateTime.ToString()可能会返回MM / DD / YYYY。我已经遇到过好几次了。 例如

Your application expects 29/05/2012 and
DateTime.Now() returns 05/29/2012 making Month=29 which is invalid

这是我面临的一个场景

答案 1 :(得分:0)

尝试而不是在您使用的ObjectDataSource或相关数据源控件的_Updating(或_Inserting,如果需要)事件中设置日期值,而不是源。代码示例如下,但显然,您需要为 控件生成此事件:

Private Sub ObjectDataSource1_Updating(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.ObjectDataSourceMethodEventArgs) Handles ObjectDataSource1.Updating

  'Set Update parameters programmatically before calling wired up Update method:
  e.InputParameters.Item("DCREA") = Convert.ToDateTime(DateTime.Now.ToShortTimeString)

End Sub

您可以在DateTime.Now对象上调用适合您需要的任何“ToShort / Long”等方法。你也可以简单地调用Now.ToString()。只根据您需要的细节提供一些选项。

答案 2 :(得分:0)

你有两个需要在gridview应用事件onupdated行上只有两件事我不知道哪个事件支持vb但是我可以告诉你在asp.net你可以这样做

在gridView上应用事件,如: -

<asp:GridView ID="GridView1" OnRowUpdating="GridView1_Updating"></asp:GridView>

UpdateCommand="UPDATE [Organizations] SET [ModifyDate] = @ModifyDate

<UpdateParameters>

          <asp:Parameter Name="ModifyDate" Type="DateTime" />
          <asp:Parameter Name="Id" Type="Int32" />
</UpdateParameters>


protected void GridView1_Updating(object sender, GridViewUpdateEventArgs e)
    {
        e.NewValues["ModifyDate"] = DateTime.Now;
    }

我希望这段代码可以帮到你。