gpt4 book ai didi

c# - 在 ASP.NET 中使用更新命令的日期格式问题

转载 作者:行者123 更新时间:2023-11-29 22:27:06 27 4
gpt4 key购买 nike

我正在使用 ASP.NET (C#)、MySQL。

我正在尝试通过 SQLDataSource 使用 FormView 组件提要...目标是创建一个表单来处理单个表中的数据,而无需太多编码并尽可能依赖框架。

我找到了如何显示数据并编辑它们,但是当我来到“日期”字段时,我发现我的任务提前停止了。因为我是意大利人,所以我使用标准的“意大利”日期格式(dd/MM/yyyy),它与 MySQL 内部日期格式(yyyy-MM-dd)完全不同,这会在我尝试更新字段时导致日期格式错误。

包含“日期”字段的表单是这样定义的:

<asp:FormView
ID="_frmData"
runat="server"
DataKeyNames="id"
DataSourceID="_sdsContatto"
DefaultMode="Edit">
<EditItemTemplate>
<asp:Table runat="server">
<asp:TableRow>
<asp:TableCell>
<asp:TextBox
ID="_txtDate"
runat="server"
Text='<%#Bind("date_field","{0:dd/MM/yyyy}")%>' />
</asp:TableCell>
</asp:TableRow>
</asp:Table>
</EditItemTemplate>
</asp:FormView>

SQLDataSource 是这样定义的:

<asp:SqlDataSource ID="_sdsData 
runat="server"
ConnectionString="<%$ ConnectionStrings:data_db %>"
ProviderName="<%$ ConnectionStrings:data_db.ProviderName %>"
SelectCommand=" SELECT
date_field
FROM
table
WHERE
id=@id;"

UpdateCommand=" UPDATE
table
SET
date_field = @date_value
WHERE
id=@id;">
</asp:SqlDataSource>

使用“意大利”日期格式会导致此错误:

Incorrect date value: '9/12/1971' for column 'date_field' at row 1

有办法解决此类问题吗?

我尝试使用 MySQL STR_TO_DATE() 但没有成功。

谨向您提供任何帮助或建议。

迈克

最佳答案

该解决方案将可视化与数据提交“分开”。简而言之,解决此类问题的最佳方法是:

<asp:FormView
ID="_fvData"
runat="server"
DataKeyNames="id"
DataSourceID="_sdsTable1"
DefaultMode="Insert" Width="100%">
<InsertItemTemplate>
<asp:TextBox
ID="_txtDate"
runat="server"
Text='<%#Eval("date_field","{0:dd/MM/yyyy}")%>' />
</InsertItemTemplate>
</asp:FormView>

在sqldatasource(在InsertParametersUpdateParameters部分)中,我们需要通过ControlParameter条目引用字段,这样:

<asp:SqlDataSource 
ID="_sdsTable1"
runat="server"
InsertCommandType="StoredProcedure"
InsertCommand="create_table1">
<InsertParameters>
<asp:ControlParameter
Name="date_field"
ConvertEmptyStringToNull="true"
Type="DateTime"
ControlID="_fvData$_txtDate"
PropertyName="Text" />
</InsertParameters>
</asp:SqlDataSource>

关于c# - 在 ASP.NET 中使用更新命令的日期格式问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30176980/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com