使用GUID作为标识符创建一个c#datatable对象?

时间:2010-01-18 04:50:49

标签: c# datatable

这可能而不是递增的ID号,我在代码中有GUID吗?

2 个答案:

答案 0 :(得分:5)

当然,请点击此处:

http://msdn.microsoft.com/en-us/library/system.data.datatable.primarykey(VS.71).aspx

   // Create a new DataTable and set two DataColumn objects as primary keys.
   DataTable myTable = new DataTable();
   DataColumn[] keys = new DataColumn[1];
   DataColumn myColumn = new DataColumn();
   myColumn.DataType = System.Type.GetType("System.Guid");
   myColumn.ColumnName= "ID";
   // Add the column to the DataTable.Columns collection.
   myTable.Columns.Add(myColumn);
   keys[0] = myColumn;
   // Set the PrimaryKeys property to the array.
   myTable.PrimaryKey = keys;

答案 1 :(得分:1)

一个选项通常是将主键的值设置为NEWID(),以将GUID分配给声明为 uniqueidentifier 数据类型的变量

另一个选项是使用sqlserver中提供的NEWSEQUENTIALID()函数来获取顺序GUID。 但MSDN声明:如果担心隐私,请不要使用此功能。可以猜测下一个生成的GUID的值,因此可以访问与该GUID相关联的访问数据。

使用newid()

的SqlQuery示例
CREATE TABLE cust
(
 CustomerID uniqueidentifier NOT NULL
   DEFAULT newid(),
 Company varchar(30) NOT NULL,
 ContactName varchar(60) NOT NULL, 
 Address varchar(30) NOT NULL, 
 City varchar(30) NOT NULL,
 StateProvince varchar(10) NULL,
 PostalCode varchar(10) NOT NULL, 
 CountryRegion varchar(20) NOT NULL, 
 Telephone varchar(15) NOT NULL,
 Fax varchar(15) NULL
)