在 C# 中向数据集添加列

Sal*_*lik 3 c# dataset

我正在尝试执行以下代码:

    static DataSet ds_input;
    static DataSet ds_output;


    ds_output.Tables.Add(new DataTable() );
    ds_output.Tables[0].Columns.Add("column_1", typeof(string));
    ds_output.Tables[0].Columns.Add("column_2", typeof(string));
    ds_output.Tables[0].Columns.Add("column_4", typeof(string));
    ds_output.Tables[0].Columns.Add("column_3", typeof(string));
Run Code Online (Sandbox Code Playgroud)

对我来说似乎很简单,但不知何故它给了我以下错误:

在初始化新实例时Add(new DataTable())

方法必须有返回类型。

将列添加到时ds_output.Tables[0]

令牌无效 '。' 在类、结构或接口成员声明中

更新#1:

我在课程开头编写了上述代码,如下所示:

namespace Bulk_Verification
{ 
    public partial class Form1 : Form

    {   static DataSet ds_input;
        static DataSet ds_output;
            //ds_output.Tables.Add(new DataTable());
            ds_output.Tables[0].Columns.Add("column_1", typeof(string));
            ds_output.Tables[0].Columns.Add("column_2", typeof(string));
            ds_output.Tables[0].Columns.Add("column_4", typeof(string));
            ds_output.Tables[0].Columns.Add("column_3", typeof(string));
Run Code Online (Sandbox Code Playgroud)

在怀疑这可能是问题之后,我在应该使用这些行之前移动了这些行:

public static DataSet verify(DataSet ds_input)
        {
            ds_output.Tables.Add(new DataTable());
            ds_output.Tables[0].Columns.Add("column_1", typeof(string));
            ds_output.Tables[0].Columns.Add("column_2", typeof(string));
            ds_output.Tables[0].Columns.Add("column_4", typeof(string));
            ds_output.Tables[0].Columns.Add("column_3", typeof(string));
Run Code Online (Sandbox Code Playgroud)

这也是返回值的唯一方法(我正在尝试创建的自定义数据集)。位置更改后,现在当我使用调试器运行应用程序时,出现以下编译器错误ds_output.Tables.Add(new DataTable());

你调用的对象是空的。

Sri*_*vel 5

我假设您拥有发布的代码。所以编译器抱怨Method must have a return typeInvalid token '.' in class, struct, or interface member declaration.

您应该创建一个Method并将代码包装在其中,它可以是实例方法、构造函数或静态方法或静态构造函数。

static DataSet ds_input = new DataSet();
static DataSet ds_output = new DataSet();

private static void InitializeMyDataSet()
{
    ds_output.Tables.Add(new DataTable() );
    ds_output.Tables[0].Columns.Add("column_1", typeof(string));
    ds_output.Tables[0].Columns.Add("column_2", typeof(string));
    ds_output.Tables[0].Columns.Add("column_4", typeof(string));
    ds_output.Tables[0].Columns.Add("column_3", typeof(string));
}
Run Code Online (Sandbox Code Playgroud)

然后打电话到InitializeMyDataSet();你需要的地方。

希望这可以帮助。

  • 否,请检查数据集的声明。我认为您错过了“new DataSet()”部分 (2认同)