0

私はここで少し仕事をしています。私はクラシック ASP の新しいサイトに取り組んでいます。

すべてを構築し、すべてが正常に機能しており、データを使用してテストする時が来ました。関連データの日付を取得した瞬間、すべてが狂ってしまいます。

WebMatrix 2 に付属の SQL CE でクエリを実行し、Getdate() を使用して日付をフィールドに挿入し、チェックアウトしました。形式は mm/dd/yyyy です。

response.write Date() を実行すると、ウェブページに表示されます。これは dd/mm/yyyy 形式です。

FormatDateTime(nDate,vbshortdate) は、日付を yyyy/mm/dd 形式で返します。

以上、背景と事実についてでした。

これで、newDate というフィールドに日付が表示されました。変数を使用してテキスト ボックスに入力します。今、データベースを更新しようとすると、エラーになります。SQLクエリをresponse.writeすると、日付は右から左(アラビア語)スタイルの文字列になります。

誰かがこの苦境から私を助けてくれるなら、これはローカリゼーションの問題かもしれないと信じています.

また、私の Web ページで charset=utf-8 を使用していることも付け加えなければなりません。

どうもありがとう

4

2 に答える 2

1

Employees という名前のテーブルにデータが格納されるフォームで、次のコードを使用しました。

@{
var record = UrlData[0].AsInt();
var id=Request["id"];
var db = Database.Open("StarterSite");
var SQLSELECT = "SELECT * FROM Employees where Id=@0";

// Select the requested record //

var emp = db.QuerySingle(SQLSELECT,id);
var EmployeeDOB = emp.DateOfBirth;

EmployeeDOB=Request["formDOB" ];

// Update the database with data from the form //

var SQLUPDATE = "UPDATE Employees Set EmployeeDOB=@1 where Id=@0";
    db.Execute(SQLUPDATE, EmployeeId, 
    EmployeeDOB);
}
<form method="post">

<label for="formDOB" @if (!ModelState.IsValidField("formDOB")) {<text>class="error-     label"</text>} >DOB:</label>
<input  type="date" name="formDOB" value="@EmployeeDOB.ToString("MM/dd/yyyy")" style="display:inline-block;margin-top:5px;margin-bottom:5px;max-width:80px;" onblur=' '/>@Html.ValidationMessage("formDOB")<br />

EmployeeDOB はテーブルでデータタイムとして宣言されます。

入力フィールドは、MM/dd/yy 形式の日付として時刻なしで表示されますが、テーブルには日時として、つまり 11/22/2012 8:00:00 PM として格納されます。

于 2012-11-23T03:56:54.097 に答える
0

SQL CE は、日付をそのまま保存するときに日付を「フォーマット」しません。WebMatrix は、データベース ツールでの表示用にフォーマットします。VBScript を使用してブラウザーで日付の表示形式を制御する場合は、さまざまなオプションがあります。VBScript での日付の書式設定 を参照してください。VBScript 形式の日付を作成できますかも参照してください。

于 2012-10-13T12:38:23.893 に答える