2010-01-14 55 views
0

以後編輯:這是我:(這是一個非空列未被填充對不起大家我糊塗..NHibernate數字格式問題 - 我在哪裏設置文化?

我有由NHibernate的產生一個INSERT語句的問題,因爲它格式化十進制數。 。使用區域設置生成的語句去是這樣的:。

exec sp_executesql N'INSERT INTO [TableName] (
    Column1, 
    Column2, 
    Column3, 
    Column4, 
    Column5, 
    Column6, 
    Column7, 
    Column8, 
    Column9, 
    Column10) 
VALUES (@p0, 
    @p1, 
    @p2, 
    @p3, 
    @p4, 
    @p5, 
    @p6, 
    @p7, 
    @p8, 
    @p9); 

select SCOPE_IDENTITY()', 

N'@p0 float,@p1 float,@p2 float,@p3 float,@p4 int,@p5 datetime,@p6 nvarchar(69),@p7 int,@p8 int,@p9 int', 
@p0=0, 
@p1=0, 
@p2=589186,74188329,   -- <-- here is my problem 
@p3=320829,21535209997,  -- <-- here is my problem 
@p4=6, 
@p5='2009-05-10 17:00:00', 
@p6=N'Some string value', 
@p7=232323, 
@p8=2, 
@p9=1 

正如你可以看到有作爲小數點分隔符,其搞砸了的參數值列表逗號

我沒有任何地方發現通向 設置用於格式化數字的文化,以便語句以有效的形式生成。

我設置Thread.CurrentCulture和CurrentUICulture在ISession的Save方法調用之前立即進入,但什麼也沒有發生。

可以做些什麼? :(

回答

2

但此列表格式的數字僅用於顯示的目的。 - 值被設置爲參數設置爲浮點數這應該不會引起INSERT以任何方式失敗

是你只是預計有問題,或者你實際上是否收到錯誤?如果你收到錯誤,是什麼?

+0

這個查詢在SQL Server Profiler中被攔截,它是實際發送的查詢 – 2010-01-14 12:20:42

+0

是的,但是它是一個參數化的查詢,並且參數值被寫出的地方被格式化,但是它們被設置的地方被設置爲本地浮點值秒。 – 2010-01-14 12:41:57

+0

呃實際上報告完全沒有報告這個問題。 – 2010-01-14 12:50:13