0

我试图用 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

我已经完成了一个可以完美运行的 Select,因此它的数据上下文没有错

  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

谢谢您的帮助

4

2 回答 2

0

检查这是一个非常好的教程:

LINQ to SQL(使用存储过程更新我们的数据库)

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

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

返回(事务处理 SQL)

于 2013-01-31T11:15:07.637 回答
0

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

于 2014-10-30T01:54:37.133 回答