0

我在 C# 中有一个 DataTable,想将它发送到我的 SQL CE 4 服务器。让它变得更复杂的一件事是,当它遇到重复项时,它应该要么忽略它并继续移动到 DataTable 中的下一行。我环顾四周,但发现很多信息似乎不适用于 SQL Server 的 CE 版本。这样做的有效方法是什么?

4

2 回答 2

1

在上传之前过滤您的数据表以排除重复的行,使用DataTable.Select方法

例如

    DataTable table = DataSet1.Tables["Orders"];

    // Presuming the DataTable has a column named Date.
    string expression;
    expression = "Date > #1/1/00#"; // you will need logic to remove your duplicates
    DataRow[] foundRows;

    // Use the Select method to find all rows excluding duplicates
    foundRows = table.Select(expression);

    // .NET 3.5 onwards
    DataTable filteredDataTable = foundRows.copyToDataTable(); 
于 2011-12-20T01:58:43.813 回答
0

试试这个逻辑。

 var dt = new DataTable(); //Supposed that this is your DataTable

 foreach(DataRow row in dt.Rows)
    {

      var find = MyFindMethod("Id"); 1. select statement that find if the id is on database

       if(find.Rows > 0)
          {
            //Id exist do nothing
          }
       else
          {
             //Id not exist then 2. Do Insert to sql ce id I not exist
            MyInsertMethod("Id"); 
          }  
    }

问候

于 2011-12-20T02:03:37.890 回答