Avatar billede ha9953 Nybegynder
04. april 2006 - 15:53 Der er 2 kommentarer og
1 løsning

fejl ved brug af ObjectDataSource

Hej

jeg får følgende fejl når jeg skal opdate en post i mit gridview:

ObjectDataSource 'ObjectDataSource1' kunne ikke finde en ikke-generisk metode 'cms_guestbook_update', der har parametrene: guestmessage, guestdate, guestname, guestmail, guestid

Min class ser ud som følgende:

Public Class ClassGuestbook
    Private _guestid As Integer
    Private _guestdate As DateTime
    Private _guestmessage As String
    Private _guestname As String
    Private _guestmail As String

    Public Property guestid() As Integer
        Get
            Return _guestid
        End Get
        Set(ByVal value As Integer)
            _guestid = value
        End Set
    End Property

    Public Property guestdate() As DateTime
        Get
            Return _guestdate
        End Get
        Set(ByVal value As DateTime)
            _guestdate = value
        End Set
    End Property

    Public Property guestmessage() As String
        Get
            Return _guestmessage
        End Get
        Set(ByVal value As String)
            _guestmessage = value
        End Set
    End Property

    Public Property guestname() As String
        Get
            Return _guestname
        End Get
        Set(ByVal value As String)
            _guestname = value
        End Set
    End Property

    Public Property guestmail() As String
        Get
            Return _guestmail
        End Get
        Set(ByVal value As String)
            _guestmail = value
        End Set
    End Property

    Public Function cms_guestbook_select() As DataTable
        Dim conn As SqlConnection = New SqlConnection(ConfigurationManager.ConnectionStrings("StandardConn").ConnectionString)
        Dim da As SqlDataAdapter = New SqlDataAdapter("SELECT * FROM cms_guestbook ORDER by guestdate DESC", conn)
        Dim ds As DataSet = New DataSet()
        conn.Open()
        da.Fill(ds, "guestbook")
        conn.Close()
        Return ds.Tables("guestbook")
    End Function

    Public Function cms_guestbook_insert(ByVal guestname As String, ByVal guestmail As String, ByVal guestmessage As String)
        Dim guestdate As DateTime
        guestdate = DateTime.Now
        Dim conn As SqlConnection = New SqlConnection(ConfigurationManager.ConnectionStrings("StandardConn").ConnectionString)
        Dim cmd As SqlCommand = New SqlCommand("cms_guestbook_insert", conn)
        cmd.CommandType = CommandType.StoredProcedure
        cmd.Parameters.Add(New SqlParameter("@guestdate", guestdate))
        cmd.Parameters.Add(New SqlParameter("@guestname", guestname))
        cmd.Parameters.Add(New SqlParameter("@guestmail", guestmail))
        cmd.Parameters.Add(New SqlParameter("@guestmessage", guestmessage))

        Dim result As Integer = 0
        conn.Open()
        result = cmd.ExecuteNonQuery()
        conn.Close()
        Return result
    End Function

    Public Function cms_guestbook_update(ByVal guestmessage As String, ByVal guestid As Integer)
        Dim conn As SqlConnection = New SqlConnection(ConfigurationManager.ConnectionStrings("StandardConn").ConnectionString)
        Dim cmd As SqlCommand = New SqlCommand("cms_guestbook_update", conn)
        cmd.CommandType = CommandType.StoredProcedure
        cmd.Parameters.Add(New SqlParameter("@guestmessage", guestmessage))
        cmd.Parameters.Add(New SqlParameter("@GuestID", guestid))

        Dim result As Integer = 0
        conn.Open()
        result = cmd.ExecuteNonQuery()
        conn.Close()
        Return result
    End Function

    Public Function cms_guestbook_delete(ByVal guestid As Integer)
        Dim conn As SqlConnection = New SqlConnection(ConfigurationManager.ConnectionStrings("StandardConn").ConnectionString)
        Dim cmd As SqlCommand = New SqlCommand("cms_guestbook_delete", conn)
        cmd.CommandType = CommandType.StoredProcedure
        cmd.Parameters.Add(New SqlParameter("@GuestID", guestid))

        Dim result As Integer = 0
        conn.Open()
        result = cmd.ExecuteNonQuery()
        conn.Close()
        Return result
    End Function
End Class


Gridview/ObjectDataSource ser ud som følgende:

        <asp:GridView ID="GridView1" runat="server" DataKeyNames="guestid" AllowPaging="True" DataSourceID="ObjectDataSource1">
            <Columns>
                <asp:CommandField ShowDeleteButton="True" ShowEditButton="True" />
            </Columns>
        </asp:GridView>
        <asp:ObjectDataSource ID="ObjectDataSource1" runat="server" DeleteMethod="cms_guestbook_delete"
            InsertMethod="cms_guestbook_insert" SelectMethod="cms_guestbook_select" TypeName="ClassGuestbook"
            UpdateMethod="cms_guestbook_update">
            <DeleteParameters>
                <asp:Parameter Name="guestid" Type="Int32" />
            </DeleteParameters>
            <UpdateParameters>
                <asp:Parameter Name="guestmessage" Type="String" />
                <asp:Parameter Name="guestid" Type="Int32" />
            </UpdateParameters>
            <InsertParameters>
                <asp:Parameter Name="guestname" Type="String" />
                <asp:Parameter Name="guestmail" Type="String" />
                <asp:Parameter Name="guestmessage" Type="String" />
            </InsertParameters>
        </asp:ObjectDataSource>
Avatar billede dr_chaos Nybegynder
04. april 2006 - 17:43 #1
tilføj en metode mere:
Public Function cms_guestbook_update(ByVal guestmessage As String, ByVal guestdate As DateTime, ByVal guestname As String, ByVal guestmail As String, ByVal guestid As Integer)

        Dim conn As SqlConnection = New SqlConnection(ConfigurationManager.ConnectionStrings("StandardConn").ConnectionString)
        Dim cmd As SqlCommand = New SqlCommand("cms_guestbook_update", conn)
        cmd.CommandType = CommandType.StoredProcedure
        cmd.Parameters.Add(New SqlParameter("@guestmessage", guestmessage))
        cmd.Parameters.Add(New SqlParameter("@GuestID", guestid))

        Dim result As Integer = 0
        conn.Open()
        result = cmd.ExecuteNonQuery()
        conn.Close()
        Return result
    End Function
Avatar billede ha9953 Nybegynder
04. april 2006 - 18:17 #2
hmm ok - det virker

Jeg har slettet den gamle function cms_guestbook_update og indsat den du foreslog i stedet..

jeg skal altså overføre alle de variabler der findes og ikke kun dem jeg har brug for, hvis jeg forstår dig ret?

smid et svar - tak for hjælpen ;.)
Avatar billede dr_chaos Nybegynder
04. april 2006 - 19:32 #3
svar :) og np
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester