Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将数据表行从一个表复制到另一个表_C#_Asp.net_Datatable - Fatal编程技术网

C# 将数据表行从一个表复制到另一个表

C# 将数据表行从一个表复制到另一个表,c#,asp.net,datatable,C#,Asp.net,Datatable,queryDataTable中包含数据,如果检查为true,则行与该单词相对应,则将整行添加到extractedData。。但是目前只有两行要添加到extractedDatadatatable,但是当我检查数据时,有22行被添加到它上面,有什么原因吗代码如下 DataTable dt = new DataTable(); for (int k = 0; k < queryDataTable.Rows.Count; k++) { string row = ""; stri

queryDataTable
中包含数据,如果检查为true,则行与该单词相对应,则将整行添加到
extractedData
。。但是目前只有两行要添加到
extractedData
datatable,但是当我检查数据时,有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]);

    }
}
DataTable dt=newdatatable();
for(int k=0;k

如果要检查整行代码无法工作,我如何仅在第一个datatable的某个索引处添加一行,使用以下说明:

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查询。

您只需执行此操作即可。(StartsWith检查字符串是否以子字符串开头)


取自

的样本数据检查您的数据。我猜在某些行的开头可能有“``一词。row给了一个错过的参考。你知道吗?很抱歉,我写的是row而不是DataRow
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);
}