无法输出 Guid 哈希码
Can't output Guid Hashcode
我正在尝试使用 guid 的哈希码作为网站的随机凭证名称,并且一直在尝试使用哈希码变量将新记录写入 SQL table 但是没用。
command.Parameters.Add("@voucherName", SqlDbType.NVarChar)
command.Parameters("@voucherName").Value = Guid.NewGuid().GetHashCode()
使用该代码时,它只是将整个 Guid 放入字段中。我怎样才能确保它只会使用哈希码?
编辑
这是用于将记录添加到我的数据库的完整函数。它从另一个函数传递一个 guid 以充当 strID
Dim connect As New SqlConnection
Dim query As String = ""
connect.ConnectionString = "SERVER = SERVER-SQL01; Trusted_Connection = yes; DATABASE = GlobalPCSQL"
connect.Open()
query = "INSERT into dbo.X_WW_VOUCHER_DETAILS (vID, voucherName, expiryDate, validUses, cartOrItem, validStockCode, discountAmount, dollarOrPercent, freebieStockCode, chkCartTotal, cartTotalOverUnder, cartTotalAmount, chkItemPrice, itemPriceOverUnder, itemPriceAmount, chkNoInCart, noInCartOverUnder, noInCartAmount, chkNoOfProduct, noOfProductOverUnder, noOfProductAmount, chkRequiredStockCode, requiredStockCode, category, description) "
query += "VALUES(@vID, @voucherName, @expiryDate, 1, 0, , 10, 1, , 1, 0, 200, 0, , , 0, , , 0, , , 0, , , Welcome Voucher, 10% off first order over 0. Valid 7 days.)"
Dim command As New SqlCommand(query, connect)
command.Parameters.Add("@vID", SqlDbType.UniqueIdentifier)
command.Parameters("@vID").Value = strID
command.Parameters.Add("@voucherName", SqlDbType.NVarChar)
command.Parameters("@voucherName").Value = Guid.NewGuid.ToString().GetHashCode()
command.Parameters.Add("@expiryDate", SqlDbType.DateTime)
Dim exDate As DateTime = DateTime.Now
exDate.AddDays(7)
command.Parameters("@expiryDate").Value = exDate
command.ExecuteNonQuery()
connect.Close()
真正奇怪的是,无论我使用 guid.newguid().toString()
还是 strID.toString()
开始... vID 和 voucherName 最终都具有与其值相同的 guid。
那么,您在寻找这样的哈希码吗?
"OZVV5TpP4U6wJthaCORZEQ"
那么这个答案可能会有用:
Guid g = Guid.NewGuid();
string GuidString = Convert.ToBase64String(g.ToByteArray());
GuidString = GuidString.Replace("=","");
GuidString = GuidString.Replace("+","");
摘自here。
在链接 post 上还有许多其他有用的答案。请看一看!
其他有用的链接:
- http://blogs.msdn.com/b/ericlippert/archive/2011/02/28/guidelines-and-rules-for-gethashcode.aspx
- What is hashCode used for? Is it unique?
- Guid & GetHashCode uniqueness
编辑:
仔细检查您的代码,您可以将其从 Guid.NewGuid.ToString().GetHashCode()
到
Guid.NewGuid.GetHashCode().ToString()
我正在尝试使用 guid 的哈希码作为网站的随机凭证名称,并且一直在尝试使用哈希码变量将新记录写入 SQL table 但是没用。
command.Parameters.Add("@voucherName", SqlDbType.NVarChar)
command.Parameters("@voucherName").Value = Guid.NewGuid().GetHashCode()
使用该代码时,它只是将整个 Guid 放入字段中。我怎样才能确保它只会使用哈希码?
编辑
这是用于将记录添加到我的数据库的完整函数。它从另一个函数传递一个 guid 以充当 strID
Dim connect As New SqlConnection
Dim query As String = ""
connect.ConnectionString = "SERVER = SERVER-SQL01; Trusted_Connection = yes; DATABASE = GlobalPCSQL"
connect.Open()
query = "INSERT into dbo.X_WW_VOUCHER_DETAILS (vID, voucherName, expiryDate, validUses, cartOrItem, validStockCode, discountAmount, dollarOrPercent, freebieStockCode, chkCartTotal, cartTotalOverUnder, cartTotalAmount, chkItemPrice, itemPriceOverUnder, itemPriceAmount, chkNoInCart, noInCartOverUnder, noInCartAmount, chkNoOfProduct, noOfProductOverUnder, noOfProductAmount, chkRequiredStockCode, requiredStockCode, category, description) "
query += "VALUES(@vID, @voucherName, @expiryDate, 1, 0, , 10, 1, , 1, 0, 200, 0, , , 0, , , 0, , , 0, , , Welcome Voucher, 10% off first order over 0. Valid 7 days.)"
Dim command As New SqlCommand(query, connect)
command.Parameters.Add("@vID", SqlDbType.UniqueIdentifier)
command.Parameters("@vID").Value = strID
command.Parameters.Add("@voucherName", SqlDbType.NVarChar)
command.Parameters("@voucherName").Value = Guid.NewGuid.ToString().GetHashCode()
command.Parameters.Add("@expiryDate", SqlDbType.DateTime)
Dim exDate As DateTime = DateTime.Now
exDate.AddDays(7)
command.Parameters("@expiryDate").Value = exDate
command.ExecuteNonQuery()
connect.Close()
真正奇怪的是,无论我使用 guid.newguid().toString()
还是 strID.toString()
开始... vID 和 voucherName 最终都具有与其值相同的 guid。
那么,您在寻找这样的哈希码吗?
"OZVV5TpP4U6wJthaCORZEQ"
那么这个答案可能会有用:
Guid g = Guid.NewGuid();
string GuidString = Convert.ToBase64String(g.ToByteArray());
GuidString = GuidString.Replace("=","");
GuidString = GuidString.Replace("+","");
摘自here。 在链接 post 上还有许多其他有用的答案。请看一看!
其他有用的链接:
- http://blogs.msdn.com/b/ericlippert/archive/2011/02/28/guidelines-and-rules-for-gethashcode.aspx
- What is hashCode used for? Is it unique?
- Guid & GetHashCode uniqueness
编辑:
仔细检查您的代码,您可以将其从 Guid.NewGuid.ToString().GetHashCode()
到
Guid.NewGuid.GetHashCode().ToString()