2014-12-04 112 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