1

我编写了一个 SQL Server 存储过程,除其他外,它接受一个date参数:

CREATE PROCEDURE data.addScore
    ... (some parameters),
    @testDate date
AS

在 ASP.NET 页面上,我有一个带有 Calender Extender 控件(来自 AJAX 工具包)的文本框,允许用户选择日期;日期以格式存储在文本框中DD/MM/YYYY。我有一些代码应该使用文本框中的日期值执行带有参数的存储过程:

cmd.Parameters["@testDate"].Value = Convert.ToDateTime(((TextBox)li.FindControl("date")).Text);

我知道我绝对可以使用 获得文本框的值((TextBox)li.FindControl("date")).Text,但是对于我的生活,我无法将其转换为不会引发一些错误之一的格式,主要是“输入字符串的格式不正确” .

当我直接在服务器上运行存储过程时,我通常将参数绑定为@testDate = 'YYYYMMDD'.

4

2 回答 2

3

我建议您不要使用 dd/mm/yyyy 等区域性、模棱两可的格式在文本框中存储任何内容。如果您使用像 YYYYMMDD 这样的明确格式,则不会有任何问题。如果用户从日历控件或其他东西中挑选,应该很容易将您提供给他们的日期与您传递给数据库的日期分开。

于 2013-09-09T04:29:49.113 回答
0
<asp:Textbox id="date" runat="Server"></asp:Textbox>

<cc1:CalendarExtender ID="calwhendate" runat="server" Enabled="true" Format="YYYYMMDD"
TargetControlID="date"></cc1:CalendarExtender>

将您的 Ajax 日历控件更改为您想要的格式

于 2013-09-09T06:01:54.747 回答