2011-05-10 124 views
0

我已經使用數據集設計器創建了一個數據集。我的一張桌子叫做Users,所以有一個叫UsersDataTable的班。在這個類中有一些屬性,即Connection。所以我創建了一個Partial Class UsersDataTable,但設計器代碼隱藏文件中的UsersDataTable類的例程,屬性或變量都不可見。Extend DataSet Class Not Working

我只是試圖擴展類來添加我自己的例程,但利用設計器生成的類的連接和強類型。我試過創建自己的部分類並測試它們,看看我是否有其他類的問題,而我沒有。只有使用這些數據集設計器生成的類纔可以訪問部分類的另一半中的項目。

我正在.net 4.我在做什麼錯了?

回答

0

它好像我已經使用了錯誤的標識只是延長我的課:

有一個Namespace和命名空間內是Partial Public Class。因此,我的代碼:

Partial Public Class myData 
    Partial Public Class UsersTableAdapter 
     Public Function DoSomething() As String 
      Return "Testing..." 
     End Function 
    End Class 
End Class 

錯了...我需要的是:

Namespace myDataTableAdapters 
    Partial Public Class UsersTableAdapter 
     Public Function DoSomething() As String 
      Return "Testing..." 
     End Function 
    End Class 
End Namespace 
1

所有「部分」類必須聲明爲這樣才能使此技術工作,和我猜的Visual Studio DataSet設計不產生子類:

http://msdn.microsoft.com/en-us/library/wa80x488(v=VS.100).aspx

您可能需要從設計器生成的類繼承。


編輯:只是看着有些VS2010生成的DataSet類,它們確實是局部的,所以假設你使用的是.NET 4,你應該是局部的爲好。我會進一步調查。


進一步編輯:

OK,因爲設計師,從數據集繼承的類中創建了*數據表類作爲嵌套類,你可能需要做同樣的在你的部分類:

public partial class UsersData 
{ 
    public partial class UsersDataTable 
    { 
     public string Foo { get; set; } 
    } 
} 

這似乎適用於我。

+0

事實上我的是局部的。我很感謝你的調查。如果示例代碼會幫助我有一些提供。 – cjbarth 2011-05-10 19:59:13

+0

請注意,在「Partial Public Class UsersTableAdapter」中有一個私有變量'_connection'。你可以從你的部分類訪問該變量嗎? – cjbarth 2011-05-10 20:23:13