SQL Server 2005. Visual Studio 2010. ASP.NET 2.0 Web アプリケーション
これは、複数の言語をサポートする Web アプリケーションです。そのうちの 1 つは韓国語です。言語を区別するためにクエリ文字列に「langid」を使用しています。langid=3 の場合は韓国語です。
コード ビハインドの C# コードでは、次のクエリを使用してテーブルを読み取ります。
"select * from Reservations where rsv_id = 1234"
テーブルに "rsv_date" という名前の列があり、これは日時型の予約日です。db テーブルでは、その値は「11/22/2012 4:14:37 PM」です。これをSQLサーバー管理スタジオで確認しました。でも読んでみると「2012-11-22 오후 4:14:37」!その韓国語の「오후」はどこから来たのですか?それはどこかの文化設定のためですか?しかし、私のコードでも SQL Server でも、どこにあるのかわかりません。このレコードを変更すると、「2012-11-22 오후 4:14:37」をデータベースに書き込もうとするため、これが問題を引き起こしました。もちろん、SQL サーバーはエラーを報告します。
私の元のコード:
Hashtable reservation = new Hashtable();
SqlCommand sqlCommand = null;
SqlDataReader dataReader;
string queryCommand = "select * from Reservations where rsv_id = @RsvID";
sqlCommand = new SqlCommand(queryCommand, getConnection());
sqlCommand.Connection.Open();
sqlCommand.Parameters.AddWithValue("@RsvID", rsvID);
dataReader = sqlCommand.ExecuteReader();
while (dataReader.Read())
{
reservation["rsvID"] = dataReader["rsv_id"];
reservation["rsvCode"] = dataReader["rsv_code"];
reservation["rsvType"] = dataReader["rsv_type"];
reservation["rsvDate"] = dataReader["rsv_date"]; // where does Korean come from?
...
}