当前位置:编程学习 > C#/ASP.NET >>

VB.NET 判断Datatable某列值唯一问题

请教一个问题,关于VB.nt的  我有一个datatable 里面的数据比如是
SONmb  a    b    c   d  
 001
 001
 001
 002
我可以通过什么方法来 判断 SONmb 这一列的值是否有不同的值存在!

我想过用遍历的方法 ,但是万一数据量大的话 遍历就会影响运行速度! 还有其他的方法嘛?
比如 DataView 能用到这里不?  datatable列值唯一 --------------------编程问答-------------------- 建议您在填充datatable时就去判断此列是否已经存在相同的值。 --------------------编程问答--------------------
 System.Data.DataTable dt = new System.Data.DataTable();
         dt.Columns.Add("SONmb", typeof(String));
         dt.Columns.Add("a", typeof(String));
         dt.Columns.Add("c", typeof(String));
         dt.Columns.Add("d", typeof(String));
         dt.Rows.Add(new object[] { "001", "1","11","111" });
         dt.Rows.Add(new object[] { "002", "2","22","222" });
         dt.Rows.Add(new object[] { "001", "3","33","333" });
         dt.Rows.Add(new object[] { "001", "4", "44", "444" });
         DataView dv = new DataView(dt);
         int i = dv.ToTable(true, "SONmb").Rows.Count;
         if (i > 1)
         {
             MessageBox.Show("SONmb里面不同的数据");
         }
--------------------编程问答-------------------- vb.net的代码
 Dim i As Integer
        Dim dt As New System.Data.DataTable
        dt.Columns.Add("SONmb", GetType(String))
        dt.Columns.Add("a", GetType(String))
        dt.Columns.Add("c", GetType(String))
        dt.Columns.Add("d", GetType(String))
        dt.Rows.Add(New Object() {"001", "1", "11", "111"})
        dt.Rows.Add(New Object() {"002", "2", "22", "222"})
        dt.Rows.Add(New Object() {"001", "3", "33", "333"})
        dt.Rows.Add(New Object() {"001", "4", "44", "444"})

        Dim dv As New DataView(dt)
        i = dv.ToTable(True, "SONmb").Rows.Count
        If i > 1 Then
            MessageBox.Show("SONmb里面不同的数据")
        End If
--------------------编程问答-------------------- ' 可以用Linq语句,过滤出唯一值:
Imports System.Linq.Expressions
Imports System.Data.Linq.Mapping
Imports System.Data.Linq

         Dim t = From o In orders
               Select New With {Key .ShipCountry = o.Field(Of String)("ShipCountry")}
               Distinct
    if order.rows.count > t.rows.count
          MessageBox.Show("ShipCountry 有重复值!")
       end if
补充:.NET技术 ,  VB.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,