2014-12-04 51 views
0

我試圖在FSharp中使用Npgsql參數化查詢,但我無法正確獲取Npgsql來更新參數值。示例代碼如下:Npgsql F#參數化查詢

let ins_command = new NpgsqlCommand("SELECT * FROM test_table WHERE keyid = :keyid") 
ins_command.Parameters.Add(new NpgsqlParameter("keyid", NpgsqlTypes.NpgsqlDbType.Integer)) |> ignore 
for key in keys do 
    ins_command.Parameters.["keyid"].Value = (box key) 
    ins_command.ExecuteScalar()) 

的「keyid的」參數始終設置爲null,如鐘錶變量看時從來沒有設置。沒有使用AddWithValue如何在FSharp中正確設置這些參數?

回答

2

我不知道庫,但行

ins_command.Parameters.["keyid"].Value = (box key) 

看起來是無所事事。除非=運營商已被更改,這只是一個平等的測試。它應該給出編譯器警告,作爲檢查相等是bool類型,並且此行不會對結果做任何事情。

如果你想使用屬性的setter(或指定一個可變的值),使用操作<-

+0

Vandroiy嗨,+1爲理念。我認爲這是一個新手FSharp的錯誤,因爲在各個地方被廣泛使用,而不是其他地方。 – 2014-12-05 13:33:02