1

とりわけ、dateパラメーターを受け入れる SQL Server ストアド プロシージャを作成しました。

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'

4

2 に答える 2

3

dd/mm/yyyy のような地域のあいまいな形式を使用して、テキスト ボックスに何も保存しないことをお勧めします。YYYYMMDD のような明確な形式を使用する場合、問題は発生しません。また、ユーザーがカレンダー コントロールなどから選択している場合、提示する日付とデータベースに渡す日付を簡単に区別できるはずです。

于 2013-09-09T04:29:49.113 に答える