Export (0) Print
Expand All

SqlGuid Structure

Represents a globally unique identifier to be stored in or retrieved from a database.

For a list of all members of this type, see SqlGuid Members.

System.Object
   System.ValueType
      System.Data.SqlTypes.SqlGuid

[Visual Basic]
Public Structure SqlGuid
   Implements INullable, IComparable
[C#]
public struct SqlGuid : INullable, IComparable
[C++]
public __value struct SqlGuid : public INullable, IComparable

[JScript] In JScript, you can use the structures in the .NET Framework, but you cannot define your own.

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Remarks

Guid and SqlGuid implement the CompareTo method differently. SqlGuid implements CompareTo using SQL Server behavior, in which only the last 6 bytes of a value are evaluated. Guid evaluates 16 bytes. This difference in behavior can lead to a discrepancy between how SQL Server and the DataSet perform a sort operation. The following C# example demonstrates this behavioral difference.

using System;
using System.Data.SqlTypes;
using System.Collections;
class Test {
    public static void Main() {
        try {
            ArrayList a = new ArrayList();
            a.Add(new Guid("3AAAAAAA-BBBB-CCCC-DDDD-2EEEEEEEEEEE"));
            a.Add(new Guid("2AAAAAAA-BBBB-CCCC-DDDD-1EEEEEEEEEEE"));
            a.Add(new Guid("1AAAAAAA-BBBB-CCCC-DDDD-3EEEEEEEEEEE"));
            Console.WriteLine("--Unsorted Guids--");
            foreach (Guid g in a) {                
                Console.WriteLine("{0}", g);
            }
            a.Sort();
            Console.WriteLine("--Sorted Guids--");
            foreach (Guid g in a) {
                Console.WriteLine("{0}", g);
            }
            a.Clear();
            a.Add(new SqlGuid("3AAAAAAA-BBBB-CCCC-DDDD-2EEEEEEEEEEE"));
            a.Add(new SqlGuid("2AAAAAAA-BBBB-CCCC-DDDD-1EEEEEEEEEEE"));
            a.Add(new SqlGuid("1AAAAAAA-BBBB-CCCC-DDDD-3EEEEEEEEEEE"));
            a.Sort();
            Console.WriteLine("--Sorted SqlGuids--");
            foreach (SqlGuid g in a) {
                Console.WriteLine("{0}", g);
            }
        } catch (Exception exc) {
            Console.WriteLine(exc);
        }
    }
}

This example produces the following results.

--Unsorted Guids--
3AAAAAAA-BBBB-CCCC-DDDD-2EEEEEEEEEEE
2AAAAAAA-BBBB-CCCC-DDDD-1EEEEEEEEEEE
1AAAAAAA-BBBB-CCCC-DDDD-3EEEEEEEEEEE
--Sorted Guids--
1AAAAAAA-BBBB-CCCC-DDDD-3EEEEEEEEEEE
2AAAAAAA-BBBB-CCCC-DDDD-1EEEEEEEEEEE
3AAAAAAA-BBBB-CCCC-DDDD-2EEEEEEEEEEE
--Sorted SqlGuids--
2AAAAAAA-BBBB-CCCC-DDDD-1EEEEEEEEEEE
3AAAAAAA-BBBB-CCCC-DDDD-2EEEEEEEEEEE
1AAAAAAA-BBBB-CCCC-DDDD-3EEEEEEEEEEE

Requirements

Namespace: System.Data.SqlTypes

Platforms: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 family, .NET Compact Framework

Assembly: System.Data (in System.Data.dll)

See Also

SqlGuid Members | System.Data.SqlTypes Namespace

Show:
© 2014 Microsoft