fejl ved brug af ObjectDataSource
Hejjeg 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>
