gpt4 book ai didi

c# - 将 TextBox 解析为 SqlDbType.Date 为 "dd.MM.yyyy"

转载 作者:行者123 更新时间:2023-11-30 17:07:48 25 4
gpt4 key购买 nike

我希望日期在页面上看起来像 dd.MM.yyyy。我喜欢这种独立于文化的方式。

我不知道怎么弄好。

cmd.Parameters.Add("@eventdate", SqlDbType.Date).Value = dateAddTxtBox.Text;

格式异常:

String was not recognized as a valid DateTime

我尝试了很多片段,例如 DateTime.ParseExact(dateAddTxtBox.Text, "dd.MM.yyyy", null) 或使用 System.Globalization.CultureInfo.InvariantCulture 作为出色地。没有任何帮助!

或者也许在 SQL 过程方面会更好,不是吗?

CREATE PROCEDURE add_history
@user VARCHAR(20),
@eventdate DATE,
...
INSERT INTO History(userid, eventdate, ...)
VALUES ((SELECT userid FROM Users.SUsers WHERE suname=@user), @eventdate, ...)

当我没有用模式格式化我的文本框时,一切都很好:

<asp:TextBox id="dateAddTxtBox" runat="server" ReadOnly="True" />
<asp:CalendarExtender ID="AddTxtBoxCalendarExtender" runat="server" Enabled="True" TargetControlID="dateAddTxtBox" Format="dd.MM.yyyy" ... />

更新:

稍微提一下>> TextBox 上有只读属性。这就是它不起作用的原因!

现在的问题是,跳过 ReadOnly="True" 是否正确?我不希望用户直接在框中编辑日期。

UPD2:

ReadOnly="True" 根本没有意义。它应该工作正常!我不知道为什么。

最佳答案

不要指定 SqlDbType.Date。相反,依靠自动检测,它会起作用:

System.DateTime dateValue = DateTime.ParseExact(...);
command.Parameters.AddWithValue("@name", dateValue);

关于c# - 将 TextBox 解析为 SqlDbType.Date 为 "dd.MM.yyyy",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14272557/

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