自动插入日期时间与插入 [英] Automatically inserting datetime with insert
问题描述
我有以下设置一个radgrid控件。我能够正确地插入新行插入我的表,但 TIME_STAMP
栏仍显示为 NULL
。数据类型是数据库日期时间
。我试过,包括 TIME_STAMP
在我的插入
查询,但仍获得 NULL
的另一面。
<的Telerik:的RadGrid ID =Grid_ValueCard=服务器的DataSourceID =SqlValueCardAutoGenerateEditColumn =真AllowAutomaticUpdates =真WIDTH =750px皮肤= WebBlueAllowAutomaticInserts =真CELLSPACING =0网格线=无>
< MasterTableView的AutoGenerateColumns =FALSEAllowAutomaticUpdates =真的DataSourceID =SqlValueCardCommandItemDisplay =评出的>
< CommandItemSettings ShowCancelChangesButton =真ShowSaveChangesButton =真/>
<列>
<的Telerik:GridBoundColumn数据字段=ProviderID数据类型=System.Int32的FilterControlAltText =过滤ProviderID列HEADERTEXT =ProviderIDSORTEX pression =ProviderIDUniqueName =ProviderID>
< /的Telerik:GridBoundColumn>
<的Telerik:GridBoundColumn数据字段=AdditionalReports数据类型=System.ByteFilterControlAltText =过滤器AdditionalReports列HEADERTEXT =AdditionalReportsSORTEX pression =AdditionalReportsUniqueName =AdditionalReports>
< /的Telerik:GridBoundColumn>
<的Telerik:GridBoundColumn数据字段=SurveyCompleted数据类型=System.ByteFilterControlAltText =过滤SurveyCompleted列HEADERTEXT =SurveyCompletedSORTEX pression =SurveyCompletedUniqueName =SurveyCompleted>
< /的Telerik:GridBoundColumn>
<的Telerik:GridBoundColumn数据字段=UniqueReportRequests数据类型=System.ByteFilterControlAltText =过滤器UniqueReportRequests列HEADERTEXT =UniqueReportRequestsSORTEX pression =UniqueReportRequestsUniqueName =UniqueReportRequests>
< /的Telerik:GridBoundColumn>
<的Telerik:GridBoundColumn数据字段=TIME_STAMP数据类型=System.DateTime的FilterControlAltText =过滤TIME_STAMP列HEADERTEXT =TIME_STAMPSORTEX pression =TIME_STAMPUniqueName =TIME_STAMP>
< /的Telerik:GridBoundColumn>
< /列>
< / MasterTableView>
< /的Telerik:的RadGrid>
下面是我的的SqlDataSource
:
< ASP:SqlDataSource的ID =SqlValueCard=服务器的ConnectionString =<%$的ConnectionStrings:RTMD_MSConnectionString%>中的SelectCommand =SELECT TOP 1 ProviderID,AdditionalReports,SurveyCompleted,UniqueReportRequests,TIME_STAMP从ProviderValueCard
将InsertCommand =INSERT INTO [ProviderValueCard]([ProviderID],[AdditionalReports],[UniqueReportRequests],[SurveyCompleted])VALUES(@ProviderID,@AdditionalReports,@UniqueReportRequests,@SurveyCompleted)>
< InsertParameters>
< ASP:参数名称=ProviderID/>
< ASP:参数名称=AdditionalReports/>
< ASP:参数名称=UniqueReportRequests/>
< ASP:参数名称=SurveyCompleted/>
< / InsertParameters>
< / ASP:SqlDataSource的>
您可以设置您的 TIME_STAMP
列有一个默认约束的插入新的行,当将自动设置为当前日期和时间:
ALTER TABLE dbo.ProviderValueCard
ADD约束DF_ProviderValueCard_Time_Stamp
DEFAULT(SYSDATETIME())FOR TIME_STAMP
现在,每一次行插入,也没有值从前端提供的,SQL Server将填补当前日期和放大器;时间到 TIME_STAMP
自动地: - )
I have a radgrid with the setup below. I'm able to properly insert a new row into my table but the Time_Stamp
column still shows as NULL
. Datatype is datetime
in the database. I've tried including the Time_Stamp
in my Insert
query but still get NULL
on the other side.
<telerik:RadGrid ID="Grid_ValueCard" runat="server" DataSourceID="SqlValueCard" AutoGenerateEditColumn="True" AllowAutomaticUpdates="True" Width="750px" Skin="WebBlue" AllowAutomaticInserts="True" CellSpacing="0" GridLines="None">
<MasterTableView AutoGenerateColumns="False" AllowAutomaticUpdates="True" DataSourceID="SqlValueCard" CommandItemDisplay="Top">
<CommandItemSettings ShowCancelChangesButton="True" ShowSaveChangesButton="True" />
<Columns>
<telerik:GridBoundColumn DataField="ProviderID" DataType="System.Int32" FilterControlAltText="Filter ProviderID column" HeaderText="ProviderID" SortExpression="ProviderID" UniqueName="ProviderID">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn DataField="AdditionalReports" DataType="System.Byte" FilterControlAltText="Filter AdditionalReports column" HeaderText="AdditionalReports" SortExpression="AdditionalReports" UniqueName="AdditionalReports">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn DataField="SurveyCompleted" DataType="System.Byte" FilterControlAltText="Filter SurveyCompleted column" HeaderText="SurveyCompleted" SortExpression="SurveyCompleted" UniqueName="SurveyCompleted">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn DataField="UniqueReportRequests" DataType="System.Byte" FilterControlAltText="Filter UniqueReportRequests column" HeaderText="UniqueReportRequests" SortExpression="UniqueReportRequests" UniqueName="UniqueReportRequests">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn DataField="Time_Stamp" DataType="System.DateTime" FilterControlAltText="Filter Time_Stamp column" HeaderText="Time_Stamp" SortExpression="Time_Stamp" UniqueName="Time_Stamp">
</telerik:GridBoundColumn>
</Columns>
</MasterTableView>
</telerik:RadGrid>
Here is my SqlDataSource
:
<asp:SqlDataSource ID="SqlValueCard" runat="server" ConnectionString="<%$ ConnectionStrings:RTMD_MSConnectionString %>" SelectCommand="SELECT TOP 1 ProviderID, AdditionalReports, SurveyCompleted, UniqueReportRequests, Time_Stamp FROM ProviderValueCard"
InsertCommand="INSERT INTO [ProviderValueCard] ([ProviderID], [AdditionalReports], [UniqueReportRequests], [SurveyCompleted]) VALUES (@ProviderID, @AdditionalReports, @UniqueReportRequests, @SurveyCompleted)">
<InsertParameters>
<asp:Parameter Name="ProviderID" />
<asp:Parameter Name="AdditionalReports" />
<asp:Parameter Name="UniqueReportRequests" />
<asp:Parameter Name="SurveyCompleted" />
</InsertParameters>
</asp:SqlDataSource>
You could set up your TIME_STAMP
column to have a default constraint that would set the current date and time automatically when a new row is inserted:
ALTER TABLE dbo.ProviderValueCard
ADD CONSTRAINT DF_ProviderValueCard_Time_Stamp
DEFAULT (SYSDATETIME()) FOR TIME_STAMP
Now, every time a row is inserted and no value is provided from the front-end, SQL Server will fill in the current date & time into TIME_STAMP
automagically :-)
这篇关于自动插入日期时间与插入的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!