创建数据集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未更新。 我怎样才能对数据集进行更改..
答案 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();
}
输出:
编辑:
以下是将有序行复制到Ds1.Tables["TblEg1"]
的简单方法。
Ds1.Tables["TblEg1"].Clear(); // Clear table
Ds1.Tables["TblEg1"].Merge(dvDT); // Merge ordered table