我编写了一个SQL Server存储过程,除其他外,还接受date
参数:
CREATE PROCEDURE data.addScore
... (some parameters),
@testDate date
AS
在ASP.NET页面上,我有一个带有Calender Extender控件的文本框(来自AJAX Toolkit),允许用户选择日期;日期以DD/MM/YYYY
格式存储在文本框中。我有一些代码应该使用参数执行存储过程,使用文本框中的日期值:
cmd.Parameters["@testDate"].Value = Convert.ToDateTime(((TextBox)li.FindControl("date")).Text);
我知道我绝对可以使用((TextBox)li.FindControl("date")).Text
来获取文本框的值,但对于我的生活,我无法将其转换为不会引发一些错误的格式,主要是'输入字符串的格式不正确'。
当我直接在服务器上运行存储过程时,我通常会绑定像@testDate = 'YYYYMMDD'
这样的参数。
答案 0 :(得分:3)
我建议你不要使用像dd / mm / yyyy这样的区域性模糊格式在文本框中存储任何内容。如果你使用像YYYYMMDD这样的明确格式,你就不会有任何问题。如果用户从日历控件或其他内容中进行选择,则应该很容易将您提供的日期与传递给数据库的日期分开。
答案 1 :(得分:0)
<asp:Textbox id="date" runat="Server"></asp:Textbox>
<cc1:CalendarExtender ID="calwhendate" runat="server" Enabled="true" Format="YYYYMMDD"
TargetControlID="date"></cc1:CalendarExtender>
将Ajax日历控件更改为所需的格式