【发布时间】:2014-09-06 10:28:49
【问题描述】:
我有一个 SQL Server CE 数据库,我正在尝试使用事件中的值进行更新,但是当我尝试从可观察的事件中插入时,控制台会打印出来
有人知道这是为什么吗?
在 observable 之外工作的代码:
let test1 =
use con = new SqlCeConnection (@"Data Source=C:\Users\Database1.sdf")
con.Open()
let AA = "Enter"
let BB = "Enter"
use cmd = new SqlCeCommand("insert into Table1 (A,B) values (@A, @B)", con)
let A1 = new SqlCeParameter("A", "1")
let B1 = new SqlCeParameter("B", "2")
do cmd.Parameters.Add A1 |>ignore
do cmd.Parameters.Add B1 |>ignore
do cmd.ExecuteNonQuery() |>ignore
printfn "%s" "complete1"
()
返回 的代码,还要注意最后的 printfn 没有执行。
let sqlsubmit = stream|> Observable.map (fun x ->
use con = new SqlCeConnection (@"Data Source=C:\Users\Database1.sdf")
con.Open()
let AA = "Enter"
let BB = "Enter"
use cmd = new SqlCeCommand("insert into Table1 (A,B) values (@A, @B)", con)
let A1 = new SqlCeParameter("A", "1")
let B1 = new SqlCeParameter("B", "2")
do cmd.Parameters.Add A1 |>ignore
do cmd.Parameters.Add B1 |>ignore
do cmd.ExecuteNonQuery |>ignore
printfn "%s" "complete1"
)
我在 Linq 中尝试过 SubmitChanges(),效果也一样。
这是用于 LINQ SubmitChanges 的类型:
[<Table(Name = "Table1")>]
type Macro (A:string, B:string)=
[<Column(IsPrimaryKey=true)>]
member this.A = A
[<Column>]
member this.B = B
【问题讨论】:
-
没有
printfn "%s" "complete1"的边可以用printfn "complete1"代替,不需要"%s"。此外,您的表名不同
标签: sql linq f# sql-server-ce unit-type