【发布时间】:2009-08-17 17:41:31
【问题描述】:
我遇到了一个奇怪的情况,我正在寻找找出问题所在的方法。我有一段代码可以在表中插入一行——我在其他几十个应用程序中都做过这种事情——但最终结果是数据库端什么也没有发生,也没有产生错误。如何找出问题所在?
这是我的代码:
Partial Class MyDatabaseDataContext
Public Sub CreateEnrollee(subId, depId)
dim newEnrollee = New enrolee With {.subId = subId, .depId = depId}
Me.enrollees.InsertOnSubmit(newEnrollee)
Me.SubmitChanges()
dim test = NewEnrollee.id '<-- auto-incrementing key'
End Sub
End Class
调用 SubmitChanges 后,不会创建新行,并且“test”为零。不会产生错误。我不知道为什么它不尝试插入行。关于如何调试的任何想法?
【问题讨论】:
-
存储 subId 和 depId 的字段...允许空值吗?如果不是,任何值是否为 0?
-
他们不允许空值,但我已经确认输入的值是好的。
-
您是否运行过 SQL Profiler 以确保应用程序实际上正在与 SQL 数据库通信?如果是这样,从 Profiler 发送到服务器的 SQL 是什么?
-
我还没有运行 SQL Profiler,但我已经让代码的其他部分与数据库通信得很好。根据 DataContext.Log,没有为插入生成语句。
标签: asp.net vb.net linq linq-to-sql insert