【问题标题】:Linq Stored Procedure insert gets no resultLinq 存储过程插入没有结果
【发布时间】:2013-01-31 10:56:46
【问题描述】:

我正在尝试使用 Linq To SQL 的存储过程插入数据。 我没有收到错误消息,并且我的数据没有被插入。 代码在 vb 中,因为我也在这个项目中使用 xml。

代码

        Using db As New booksDataContext()

        db.testprocedure("kkk")
        db.SubmitChanges()

        End Using

存储过程

ALTER PROCEDURE testprocedure

(
@test varchar(50)
)

AS
BEGIN
INSERT INTO test (testcolum)
VALUES (@test)
END

我可以在调试时将它设置为该函数并返回 0

<Global.System.Data.Linq.Mapping.FunctionAttribute(Name:="dbo.testprocedure")>  _
Public Function testprocedure(<Global.System.Data.Linq.Mapping.ParameterAttribute(DbType:="VarChar(50)")> ByVal test As String) As Integer
    Dim result As IExecuteResult = Me.ExecuteMethodCall(Me, CType(MethodInfo.GetCurrentMethod,MethodInfo), test)
    Return CType(result.ReturnValue,Integer)
End Function

我已经做了一个完美的选择,所以它的数据上下文没有错

  Sub SelectAllBooks()

    Dim db As New booksDataContext()

    For Each book In db.SelectBooks("Madde")

        Dim title = book.title
        Dim author = book.author
        Dim genre = book.genre
        Dim price = book.price
        Dim publish_date = book.publish_date
        Dim description = book.description
        Dim bookid = book.bookid


        Console.WriteLine(title & " " & author & " " & genre & " " & price & " " & publish_date & " " & description & " " & bookid)

    Next
    Console.ReadLine()
End Sub

感谢您的帮助

【问题讨论】:

  • 如果你运行 SQLProfiler,你能看到你的语句被执行了吗?

标签: .net vb.net linq linq-to-sql stored-procedures


【解决方案1】:

看看这是一个很好的教程:

LINQ to SQL (Updating our Database using Stored Procedures)

另外,检查test 表中的值是否正确插入。

除非另有说明,否则所有系统存储过程都返回值 0。这表示成功,非零值表示失败。

RETURN (Transact-SQL)

【讨论】:

  • OP 声明“我的数据没有被插入。”
  • @Jodrell OP 还说“我可以在调试时将它放入这个函数并且它返回 0”
  • 数据没有被插入。在我的插入中,返回值是 Nothing 并且在我的选择中返回值 = 数据库查询(我在 VS 中对其进行了观察)如果我手动执行 SP,它可以工作(右键单击它并选择执行)
  • 我也做了删除和更新功能,它与插入相同。有人知道原因方式只选择工作而不是插入更新删除,我必须做错事
【解决方案2】:

您的桌子上有主键吗?这是我能够让 INSERT/UPDATE/DELETE 方法通过 LINQ 工作的唯一方法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-10-19
    • 2010-10-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-26
    • 1970-01-01
    相关资源
    最近更新 更多