campo typename in un controllo objectDataSource

  • Creatore Discussione Creatore Discussione tonino1
  • Data di inizio Data di inizio

tonino1

Utente Attivo
1 Gen 2009
58
3
0
Sto provando a utilizzare un controllo objectDataSource in un listato per accedere ai dati di un database.In questo listato è stata creata una classe che gestisce tutte le operazioni sul database.Ora la documentazione richiede che nel campo TypeName di objectDataSource sia inserito il nome della classe.Ho provato ma non funziona.Mi sapreste aiutare? Grazie mille.
Per comodità vi posto il codice:
Imports System.Data
Imports System.Data.SqlClient

Public Class ProductInfo3

Const conString As String = _
"Server=localhost;Trusted_Connection=true;Database=banking"

Public Shared Function GetProducts() As SqlDataReader
Dim con As New SqlConnection(conString)
Dim selectString As String = "SELECT *, " & _
FROM tblUsers "
Dim cmd As New SqlCommand(selectString, con)
con.Open()
Dim dtr As SqlDataReader = _
cmd.ExecuteReader(CommandBehavior.CloseConnection)
Return dtr
End Function

Public Shared Sub UpdateProduct(ByVal original_productId _
As Integer, ByVal productName As String, _
ByVal unitPrice As Decimal)
Dim con As New SqlConnection(conString)
Dim updateString As String = "UPDATE tblUsers " & _
"SET FirstName=@FirstName & _
"WHERE UserID=@UserID"
Dim cmd As New SqlCommand(updateString, con)
cmd.Parameters.AddWithValue("@FirstName", FirstName)
cmd.Parameters.AddWithValue("@LastName", LastName)
cmd.Parameters.AddWithValue("@Zip", Zip)
con.Open()
cmd.ExecuteNonQuery()
con.Close()
End Sub

Public Shared Sub DeleteProduct(ByVal original_productId _
As Integer)
Dim con As New SqlConnection(conString)
Dim deleteString As String = "DELETE tblUsers " & _
"WHERE FirstName=@FirstName"
Dim cmd As New SqlCommand(deleteString, con)
cmd.Parameters.AddWithValue("@FirstName", FirstName)
con.Open()
cmd.ExecuteNonQuery()
con.Close()
End Sub

End Class

<html>
<head>
<title>Show Users</title>
</head>
<body>
<form id="form1" runat="server">

<asp:GridView
ID="GridView1"
DataSourceID="ObjectDataSource1"
DataKeyNames="UserID"
AutoGenerateColumns="false"
AutoGenerateEditButton="true"
AutoGenerateDeleteButton="true"
Runat="Server">
<Columns>
<asp:BoundField
DataField="FirstName"/>
<asp:BoundField
DataField="LastName"
/>
</Columns>
</asp:GridView>

<asp:ObjectDataSource
ID="ObjectDataSource1"
TypeName="ProductsInfo3"
SelectMethod="GetProducts"
UpdateMethod="UpdateProduct"
DeleteMethod="DeleteProduct"
Runat="Server" />

</form>
</body>
</html>
 
Si effettivamente è giusto che nel campo TypeName sia inserito il nome della classe, ma nel listato che riporti vedo che la classe si chiama ProductInfo3 mentre nell' ObjectDataSource c'è scritto ProductsInfo3.

Per il componente quindi si tratta di due classi diverse.
 
errore

Purtroppo anche con il nome della classe giusto il codice non funziona.Non sò proprio cosa fare!
 
Ma il messaggio d'errore qual'è?

La classe la devi mettere nel file aspx.cs mentre mentre la parte restante di codice nel file aspx.
 

Discussioni simili