2010-11-12 32 views
2

这是我在Stack Overflow上的第一篇文章,所以请删除(并随时指出)任何n00b错误。如何在VB.NET中使用部分类公开私有字段?

我试图通过如下面的例子说明扩展部分类来实现VB.NET中跨多个TableAdapter的交易(使用Visual Studio 2010):

http://blah.winsmarts.com/2006/06/18/the-definitive-tableadapters--transactions-blog-post.aspx

madprops.org/blog/类型化数据集和-的SqlTransaction/

stackoverflow.com/questions/2342289/net-tableadapter-to-dataadapter

然而,当我试图揭露任何私人领域CREA的泰德由设计师他们强调了与以下错误编辑:

'_adapter' is not declared. It may be inaccessible due to its protection level.

搜索这个网站以及谷歌没有透露任何有用的东西,但perhpas我搜索了错误的关键词。

这里是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 

的代码,这里是设计师代码:

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 

我失去了一些东西,或者这是不可能在VB(所有的例子我见过用C#)?

TIA任何帮助!

JE

+0

名称空间名称是否匹配? – 2010-11-12 21:23:56

+0

不,他们没有,事实上是这个问题。设计者插入完全限定名称空间,但它应该只是MyDatasetTableAdapters。 – 2010-11-12 21:35:49

回答

0

你能访问适配器类的任何公共属性/方法吗?

我想你可能已经在错误的命名空间中创建了你的部分类。它必须位于Namespace MyDataSetTableAdapters

+0

谢谢亨克!设计者插入完全限定的名称空间,但将其更改为仅MyDatasetTableAdapters修复了问题! – 2010-11-12 21:32:33

+0

我该如何接受你的回答?我不能投票B/C我是一个n00b :-) – 2010-11-12 21:33:18

+0

...呃,我想这就是巨大的复选标记!再次感谢,我盯着这里一个多小时。 – 2010-11-12 21:39:14

相关问题