次の方法で共有


SqlGuid 構造体

データベースに格納する、またはデータベースから取得するグローバル一意識別子 (GUID) を表します。

この型のすべてのメンバの一覧については、SqlGuid メンバ を参照してください。

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

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

[JScript] JScript では、.NET Framework の構造体を利用することができます。ただし、独自に定義することはできません。

スレッドセーフ

この型の public static (Visual Basicでは Shared) のすべてのメンバは、マルチスレッド操作で安全に使用できます。インスタンスのメンバの場合は、スレッドセーフであるとは限りません。

解説

GuidSqlGuid では、 CompareTo メソッドの実装が異なります。 SqlGuid は、SQL Server の動作を使用して CompareTo を実装し、値の最後の 6 バイトだけを評価します。一方、 Guid は、16 バイトを評価します。この動作の違いにより、SQL Server と DataSet の間で、ソート操作の実行内容が一致しないことがあります。この動作の違いを次の C# の例で示します。

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);
        }
    }
}

この例では、次の結果が生成されます。

--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

必要条件

名前空間: System.Data.SqlTypes

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ, .NET Compact Framework - Windows CE .NET

アセンブリ: System.Data (System.Data.dll 内)

参照

SqlGuid メンバ | System.Data.SqlTypes 名前空間