【问题标题】:typed-dataset initializer problem with C# windows appC# windows 应用程序的类型化数据集初始化程序问题
【发布时间】:2010-04-08 07:26:10
【问题描述】:

您好,

我正在使用 C# 在 Windows 应用程序中工作。

我有一个名为 packetDBDataSet 的类型化数据集,它有一个名为 packetTableAdapter 的表适配器,以及一个名为 InsertPackets() 的插入数据的方法。

当我想插入新数据时,我使用了之前在 asp.net 页面中使用过的代码,它工作正常,但没有出现错误。

代码如下:

public packetsDBDataSetTableAdapters.packetsTableAdapter ds = new packetsDBDataSetTableAdapters.packetsTableAdapter();

public packetsDBDataSet.packetsDataTable insert = ds.InsertPackets(); 

这是错误:

错误 1 ​​字段初始化程序无法引用非静态字段、方法或属性 'Packets.Form1.ds' C:\Users\Ali\Documents\Visual Studio 2008\Projects\Packets-3\Packets\Packets\ Form1.cs 26 59包

我已经包含在我的项目中: 使用数据包; 使用 Packets.packetsDBDataSetTableAdapters;

请建议解决这个问题。

更新:

我也试过了:

public packetDBDataSetTableAdapters.packetsTableAdapter ds = new packetDBDataSetTableAdapters.packetsTableAdapter();

ds.InsertPackets("1","2","3");

我收到了这个错误:

Error 1 Invalid token '(' in class, struct, or interface member declaration C:\Users\Ali\Documents\Visual Studio 2008\Projects\Packets-3\Packets\Packets\Form1.cs 28 29 Packets

【问题讨论】:

  • 公共字段是不好的做法。

标签: c# strongly-typed-dataset


【解决方案1】:

这些行称为字段初始值设定项;他们声明一个字段并将其初始化为某个值。

正如错误所说,字段初始值设定项不能引用类的实例成员(因为它们在类完全构造之前执行)。

因为它引用了ds实例成员,你需要将insert = ds.InsertPackets();移动到构造函数中。

【讨论】:

    猜你喜欢
    • 2023-03-18
    • 1970-01-01
    • 2019-09-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多