Ceci est mon premier post sur Stack Overflow alors s'il vous plaît exuser (et n'hésitez pas à signaler) toutes les erreurs n00b.Comment puis-je exposer des champs privés à l'aide d'une classe partielle dans VB.NET?
Je suis en train de mettre en œuvre des transactions sur plusieurs TableAdapters en VB.NET (en utilisant Visual Studio 2010) en étendant la classe partielle comme décrit dans les exemples suivants:
http://blah.winsmarts.com/2006/06/18/the-definitive-tableadapters--transactions-blog-post.aspx
madprops.org/blog/ tapées-ensembles de données et SQLTransaction/
stackoverflow.com/questions/2342289/net-tableadapter-to-dataadapter
Cependant, lorsque je tente d'exposer l'un des champs privés crea ted par le concepteur, ils sont soulignés dans l'éditeur avec l'erreur suivante:
'_adapter' is not declared. It may be inaccessible due to its protection level.
Recherche sur ce site ainsi que Google n'a pas révélé quoi que ce soit utile, mais perhpas je cherche les mots-clés faux.
Voici le code dans MyDataset.vb
Partial Public Class MyTableAdapter
Public Property MyTransaction() As SqlTransaction
Get
Return _adapter.SelectCommand.Transaction
End Get
Set(ByVal value As SqlTransaction)
If _adapter Is Nothing Then
InitAdapter()
End If
Connection = value.Connection
_adapter.InsertCommand.Transaction = value
_adapter.UpdateCommand.Transaction = value
_adapter.DeleteCommand.Transaction = value
End Set
End Property
End Class
et est le code designer ici:
Partial Public Class MyTableAdapter
Inherits Global.System.ComponentModel.Component
Private WithEvents _adapter As Global.System.Data.SqlClient.SqlDataAdapter
Private _connection As Global.System.Data.SqlClient.SqlConnection
Private _transaction As Global.System.Data.SqlClient.SqlTransaction
Private _commandCollection() As Global.System.Data.SqlClient.SqlCommand
Suis-je manque quelque chose, ou est-ce pas possible en VB (tous les exemples J'ai vu sont en C#)?
TIA pour toute aide!
JE
Les noms d'espace de noms correspondent-ils? –
Non, ils ne l'ont pas fait, et c'était en fait le problème. Le concepteur a inséré l'espace de noms entièrement qualifié, mais il ne doit s'agir que de MyDatasetTableAdapters. –