2015-08-07 5 views
1
DataTable dt = new DataTable(); 
res.Fill(dt); 

он получает код данных sql.Как использовать dataview для проверки того же значения

DataRow dr = dt.NewRow(); 
dr[0] = tt_id; 
dr[1] = fault_desc; 
dr[2] = tt_time; 

dt.Rows.Add(dr); 

DataView dv = new DataView(dt); 

Response.Write(dv); 

if (dv.Count != dv.ToTable(true, "tt_id").Rows.Count) { 
    // string sqlstr = string.Format("insert 
} 

Я хочу использовать DataView, чтобы проверить новые данные, которые существовали в SQL, прежде чем , если существуют отменить для вставки. проблемы - ответ сказал, что у меня есть то же значение , но я проверяю его, где не было такого же значения в dv. что здесь не так?

ответ

1
var duplicateValues = (from row in dt.AsEnumerable() 
        orderby row.Field<string>("Id") 
        select new DuplicateObject 
        { 
         Id = row.Field<string>("Id"), 
         Name = row.Field<string>("Name"), 
         Skill = row.Field<string>("Skill") 
        }).Distinct(new DuplicateObjectComparer()).ToList(); 

string dupValue = string.Empty; 

foreach (var dup in duplicateValues) 
{ 
dupValue = dup.Id + " - " + dup.Name + " - " + dup.Skill; 
Console.WriteLine("Duplicate entry:" + dupValue); 
} 

if (duplicateValues.Count == 0) 
Console.WriteLine("No duplicate entry"); 
// Supporting classes 
// Gives a strongly type class from the Linq query  
public class DuplicateObject 
{ 
    public string Id { get; set; } 
    public string Name { get; set; } 
    public string Skill { get; set; } 
}