【问题标题】:copy datatable rows from one table to another将数据表行从一个表复制到另一个表
【发布时间】:2012-11-24 06:03:51
【问题描述】:

queryDataTable 中包含数据,如果检查为真,该行包含该单词,则将整行添加到 extractedData.. 但目前只有两行要添加到 @ 987654323@ 数据表但是当我检查数据时添加了 22 行是否有任何原因,代码如下

DataTable dt = new DataTable();

for (int k = 0; k < queryDataTable.Rows.Count; k++)
{

    string row = "";
    string test = queryDataTable.Rows[k][0].ToString();
    bool check = queryDataTable.Rows[k][0].ToString().StartsWith(queryString);
    if (check)
    {
        int errorcheck = k;
        extractedData.ImportRow(queryDataTable.Rows[errorcheck]);

    }
}

如何只在第一个数据表的某个索引处添加一行

【问题讨论】:

  • 检查您的数据。我猜某些行的开头可能有` `。

标签: c# asp.net datatable


【解决方案1】:

如果您想检查整行,此代码无法正常工作,请使用以下说明:

queryDataTable.Rows[k][0].ToString().StartsWith(queryString);

您只检查 k 行的第一列。 首先,您可以使用这个更紧凑的代码:

DataTable dt = new DataTable();
for (DataRow r in dt.Rows)
{
   if(r[0].startsWith(queryString))
   {
      extractedData.ImportRow(r);
   }
}

if 语句只检查每行的第 0 列。如果您向我指定要执行的检查,我可以尝试修改此代码或创建 linq 查询。

【讨论】:

  • 单词行给一个小姐参考你知道吗
  • 对不起,我写的是 Row 而不是 DataRow
【解决方案2】:

您可以简单地执行此操作。 (StartsWith 检查字符串是否以子字符串开头)。

DataTable table = new DataTable();
table.Columns.Add("Dosage", typeof(int));
table.Columns.Add("Drug", typeof(string));
table.Columns.Add("Patient", typeof(string));
table.Columns.Add("Date", typeof(DateTime));

// Here we add five DataRows.
table.Rows.Add(25, "Indocin", "David", DateTime.Now);
table.Rows.Add(50, "Enebrel", "Sam", DateTime.Now);
table.Rows.Add(10, "Hydralazine", "Christoff", DateTime.Now);
table.Rows.Add(21, "Combivent", "Janet", DateTime.Now);
table.Rows.Add(100, "Dilantin", "Melanie", DateTime.Now);

var rows = table.AsEnumerable().Where(dr => dr.ItemArray.Contains("David"));

DataTable copyTable = new DataTable();
copyTable.Columns.Add("Dosage", typeof(int));
copyTable.Columns.Add("Drug", typeof(string));
copyTable.Columns.Add("Patient", typeof(string));
copyTable.Columns.Add("Date", typeof(DateTime));

foreach (var row in rows)
{
    copyTable.Rows.Add(row.ItemArray);
}

取自https://www.dotnetperls.com/datatable的样本数据

【讨论】:

    猜你喜欢
    • 2023-03-16
    • 1970-01-01
    • 2011-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多