DataSet未更新

时间:2017-09-22 05:46:25

标签: c#

创建数据集Ds1,其中包含一个表TblEg1 像这样创建一个数据表。

DataTable TblEg1 = Ds1.Tables["TblEg1"];
DataRow row;
row= TblEg1.NewRow();
row["EmployeeID"] = "Malavika";   
row["EmployeeCode"] = "100";
TblEg1.Rows.Add(row);

和数据添加如上 现在mt数据集包含正确的值。现在我想使用EmployeeCode对表进行排序

var varWps1 = TblEg1.AsEnumerable().OrderBy(i => i.Field<string>("EmployeeCode"));
if (varWps1.Any())
   TblEg1 = varWps1.CopyToDataTable();

现在表TblEg1已更新Bt Dataset未更新。 我怎样才能对数据集进行更改..

2 个答案:

答案 0 :(得分:0)

你试过这样的事吗:

Ds1.Tables["TblEg1"].DefaultView.Sort ="EmployeeCode";

通过这样做,您不需要使用LINQ并创建另一个表。这应该使用已排序的表更新数据集。

答案 1 :(得分:0)

根据上面的代码,您修改TblEg1表时数据集应该正确更新。您的代码应该添加一个新行,它应该反映到Ds1.Tables["TblEg1"]

DataTable TblEg1 = Ds1.Tables["TblEg1"];
DataRow row;
row= TblEg1.NewRow();
row["EmployeeID"] = "Malavika";   
row["EmployeeCode"] = "100";
TblEg1.Rows.Add(row);

您可以使用

对数据表进行排序
Ds1.Tables["TblEg1"].DefaultView.Sort = "EmployeeCode ASC"; // Set ASC or DESC
DataTable dvDT = Ds1.Tables["TblEg1"].DefaultView.ToTable(); // new table contains the sorted rows

此时,您应该在访问Malavika 100时获得Ds1.Tables["TblEg1"].Rows。 如果您仍未使用数据集获取值,我发现您可能会显示不完整的代码。

这是一个简单的例子:

    static void Main()
    {
        DataSet ds = new DataSet();
        DataTable dt = new FooBar.FooDataTable();
        ds.Tables.Add(dt);

        DataRow dr1 = dt.NewRow();
        dr1["A"] = 3;
        dr1["B"] = 4;

        dt.Rows.Add(dr1);

        DataRow dr2 = dt.NewRow();
        dr2["A"] = 1;
        dr2["B"] = 2;

        dt.Rows.Add(dr2);

        foreach (DataRow dr in ds.Tables[0].Rows)
        {
            Console.WriteLine(dr["A"] + " " + dr["B"]);
        }

        ds.Tables[0].DefaultView.Sort = "A";
        DataTable dvDT = ds.Tables[0].DefaultView.ToTable();

        foreach (DataRow dr in dvDT.Rows)
        {
            Console.WriteLine(dr["A"] + " " + dr["B"]);
        }

        Console.Read();
    }

输出:

enter image description here

编辑:

以下是将有序行复制到Ds1.Tables["TblEg1"]的简单方法。

Ds1.Tables["TblEg1"].Clear(); // Clear table
Ds1.Tables["TblEg1"].Merge(dvDT); // Merge ordered table