删除数据集C#上的一些数据

时间:2016-03-23 10:00:37

标签: c# sql asp.net asp.net-mvc dataset

我想从数据集中删除一些数据而不是整行。

例: NewsNo | RID |备注
  1 100 L1,R1,R2,R3

在这里我只想删除L1数据。

我的代码

 DataSet dSet = new DataSet();
 ExcelAdapter.Fill(dSet);
 dSet.Tables[0].Rows[i].Delete(); //<-- It delete whole row.i just want to delete L1 only.

4 个答案:

答案 0 :(得分:1)

您想要更新数据而不是删除它......:

dSet.Tables[0].Rows[i]["REMARKS"] = "R1,R2,R3";

答案 1 :(得分:1)

在这种情况下,您需要使用不包含L1

的值更新备注列

假设L1是您动态获取的值(例如作为用户输入),我认为它可能是这样的:

var valToRemove = "L1"; //provided by user
var remarks = dSet.Tables[0].Rows[i]["REMARKS"];
var splittedRemarks = new List<string>(remarks.Split(new[]{','}, StringSplitOptions.RemoveEmptyEntries));
splittedRemarks.Remove(valToRemove); //If you need to remove all the L1 values use `RemoveAll` method instead
dSet.Tables[0].Rows[i]["REMARKS"] = splittedRemarks.Join(",");

答案 2 :(得分:1)

您应该更新单元格的值(就像在数据库中一样)。在你的情况下删除L1它看起来像这样

dSet.Tables[0].Rows[i] = string.join(",",dSet.Tables[0].Rows[i].ToString().Split(',').RemoveAt(0));

答案 3 :(得分:0)

你可以这样做:

string str = dSet.Tables[0].Rows[i]["REMARKS"].toString();
dSet.Tables[0].Rows[i]["REMARKS"] = str.Remove(str.IndexOf("L1"), 3);

此处,找到L1的索引,从该索引开始删除3个字符。