C# 在自动生成的代码中的数据源上找不到DataMember属性

C# 在自动生成的代码中的数据源上找不到DataMember属性,c#,datamember,C#,Datamember,我知道以前有人问过我这个问题,但我环顾四周,找不到任何与我的问题完全相符的东西,所以我为这篇文章道歉 我正在用C编写一个使用内部SQLCEDB的.NET.5应用程序。每当我在调试器中运行应用程序时,都会在下面BindingSource行的标题中列出错误: this.Load += new System.EventHandler(this.Main_Load); ((System.ComponentModel.ISupportInitialize)(this.dbCDRDataSet1)).End

我知道以前有人问过我这个问题,但我环顾四周,找不到任何与我的问题完全相符的东西,所以我为这篇文章道歉

我正在用C编写一个使用内部SQLCEDB的.NET.5应用程序。每当我在调试器中运行应用程序时,都会在下面BindingSource行的标题中列出错误:

this.Load += new System.EventHandler(this.Main_Load);
((System.ComponentModel.ISupportInitialize)(this.dbCDRDataSet1)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.animalControlBindingSource)).EndInit();
this.ResumeLayout(false);
this.PerformLayout();
这是我的主窗体main.Designer.cs的Designer.cs部分。如果我把代码注释掉,它似乎工作得很好,但因为它是autogen代码,所以每次都会弹出

数据库结构的一些背景:

我的数据库是dbCDR.sdf。我有一个数据集dbCDEDataSet1.xsd,它包含所有表。其中一个表格叫做AnimalControl

如果我试图重写有问题的行,Intellisense会给出与autogen代码相同的结果

我尝试过删除并重新创建同名的数据集几次,只是想看看它是否会强制进行更完整的刷新


我可以根据需要提供更多的细节,请告诉我。非常感谢

我找到了!很抱歉浪费你的时间

堆栈跟踪的表名为Animal Control,带有空格。当我第一次看到它时,我忽略了这一点

不知道这是怎么做到的,但我在Designer.cs代码中发现了令人不快的代码,并对其进行了更改。现在它很快乐


谢谢,@Hylaean,你迫使我更仔细地查看我的堆栈跟踪!:-

在animalControlBindingSource中,如果源名称是其正确名称,而不是使用空格的名称,则需要将其设置为AnimalControl


应该在设计器文件中的某个地方。

你看过吗?@Hylaean我看过,但看起来不像是同一个错误。我没有使用任何绑定到数据源的控件,所有这些都是通过SqlCeDataReader等在内部完成的。如果有帮助,我可以附加代码的这一部分。你能用堆栈跟踪发布异常吗?跟踪太长,无法放入注释,所以这里有一个。在animalControlBindingSource中,您需要将源的名称设置为AnimalControl,如果它是它的专有名称,而不是您使用的空格名称。