0

LinqToSQLを使用してストアドプロシージャを使用してデータを挿入しようとしています。エラーメッセージが表示されず、データが挿入されません。このプロジェクトではxmlも使用しているため、コードはvbにあります。

コード

        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

私はperfektで動作する選択を行ったので、データコンテキストに問題はありません

  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 を返します。これは成功を示し、0 以外の値は失敗を示します。

RETURN (Transact-SQL)

于 2013-01-31T11:15:07.637 に答える
0

テーブルに主キーがありますか? これが、INSERT/UPDATE/DELETE メソッドを LINQ で機能させる唯一の方法です。

于 2014-10-30T01:54:37.133 に答える