C# 如何在ms access中以编程方式创建GUID自动编号

C# 如何在ms access中以编程方式创建GUID自动编号,c#,ms-access,C#,Ms Access,如何使用C#?以编程方式创建guid自动编号字段您知道如何针对Jet或ACE连接运行sql吗 CREATE TABLE Literal (LinkID GUID) INSERT INTO Literal (LinkID) VALUES ({guid {11223344-1122-1122-1122-AABBCCDDEEFF}}) 这可能会有帮助: 此外,使用DAO: 要使GUID字段自动递增,请使用GenGUID()作为默认值 这在Access中使用ADO工作。也许类似的说法也适用于C#:

如何使用C#?

以编程方式创建guid自动编号字段您知道如何针对Jet或ACE连接运行sql吗

CREATE TABLE Literal (LinkID GUID)

INSERT INTO Literal (LinkID) VALUES ({guid {11223344-1122-1122-1122-AABBCCDDEEFF}})
这可能会有帮助:

此外,使用DAO:


要使GUID字段自动递增,请使用GenGUID()作为默认值

这在Access中使用ADO工作。也许类似的说法也适用于C#:

如果是C#那么

如果它的访问那么

Private Declare Function CreateGuid Lib "OLE32.DLL" (pGuid As GUID) As Long
Private Declare Function StringFromGUID2 Lib "OLE32.DLL" (pGuid As GUID, ByVal PointerToString As Long, ByVal MaxLength As Long) As Long

Private Type GUID
    Guid1           As Long
    Guid2           As Integer
    Guid3           As Integer
    Guid4(0 To 7)   As Byte
End Type

Public Function CreateGUIDKey() As String
    Const GUID_OK As Long = 0    
    Const GUID_LENGTH As Long = 38

    Dim udtGUID As GUID
    Dim FormattedGUID As String
    Dim Result As Long

    Result = CreateGuid(udtGUID)

    If Result = GUID_OK Then
        FormattedGUID = String$(GUID_LENGTH, 0)
        StringFromGUID2 udtGUID, StrPtr(FormattedGUID), GUID_LENGTH + 1
    Else
        FormattedGUID = ""
    End If

    CreateGUIDKey = FormattedGUID

End Function

您如何在C#中使用MS Access?ADO.NET?我在c#中使用ms access。我将此查询用于创建guid字段:“创建表hede(Id guid)”,但我需要创建guid和自动增量字段,或者将guid字段的deafult值设置为新的guid Id。请注意Access中可能不适用于您的问题。主题:信息:复制和GUID,好的,坏的,丑陋的是有什么原因不能使用复制ID类型的自动编号字段?这样,您就不必在代码中生成GUID。您的问题是不明确的。您是希望更改表的结构,使其具有自动填充唯一GUID的字段,还是希望在代码中动态创建GUID?如果是后者,为什么自动递增的GUID字段不能免除您在代码中执行此操作的需要?这是一个仅创建GUID字段并插入新记录的字段。我需要创建guid和自动增量字段。这与在Access中的表设计器中为自动编号字段设置ReplicationID相同吗?如果没有,区别是什么?是的,这就是它在Access UI中的显示方式。他没有说他为什么想从C#开始。我读到的问题是关于填充现有字段,而不是将字段添加到表中。我注意到
GenGUID()
函数只能在Access中工作。如果从外部程序(如C#)使用OLE-DB或ODBC来操作Access数据库,则会出现一个错误,说明
GenGUID()
未定义。您将需要使用GUID文本。似乎CreateGuid不再位于OLE32.DLL中。看起来应该改用CoCreateGuid。见:
string myguid = Guid.NewGuid.ToString;
Private Declare Function CreateGuid Lib "OLE32.DLL" (pGuid As GUID) As Long
Private Declare Function StringFromGUID2 Lib "OLE32.DLL" (pGuid As GUID, ByVal PointerToString As Long, ByVal MaxLength As Long) As Long

Private Type GUID
    Guid1           As Long
    Guid2           As Integer
    Guid3           As Integer
    Guid4(0 To 7)   As Byte
End Type

Public Function CreateGUIDKey() As String
    Const GUID_OK As Long = 0    
    Const GUID_LENGTH As Long = 38

    Dim udtGUID As GUID
    Dim FormattedGUID As String
    Dim Result As Long

    Result = CreateGuid(udtGUID)

    If Result = GUID_OK Then
        FormattedGUID = String$(GUID_LENGTH, 0)
        StringFromGUID2 udtGUID, StrPtr(FormattedGUID), GUID_LENGTH + 1
    Else
        FormattedGUID = ""
    End If

    CreateGUIDKey = FormattedGUID

End Function