正在将字符串转换为System.guid c#
本文关键字:System guid 转换 字符串 | 更新日期: 2023-09-27 18:21:55
我正在尝试使用sql和c#根据帐户GUID检索客户端的名称。
static DataClasses1DataContext dbDataClasses = new DataClasses1DataContext();
static void Main(string[] args)
{
var accountList = from accounts in dbDataClasses.ACCOUNTs where accounts.AccountGUID.ToString() = "e8d82d5d-b7bd-4b24-a7fe-ef050921e960"
select accounts;
foreach (ACCOUNT temp in accountList)
{
Console.WriteLine("Account Name: " + temp.Name + " Account GUID: " + temp.AccountGUID);
}
}
然而,我收到一个错误,说"无法将类型'string'隐式转换为'System.guid'
如有任何帮助,我们将不胜感激。感谢
查看Guid
类的文档。有一个构造函数接受string
,还有Parse
静态方法
使用
Guid.Parse()
或Guid.ParseExact()
在您的字符串中使用它之前:
where accounts.AccountGUID= "e8d82d5d"
应该是这样的:
where accounts.AccountGUID= Guid.Parse("e8d82d5d")
有两种方法
假设所有Id都是有效格式
Guid accountId = Guid.Parse(accountIdString);
假设您的accountIdString始终是经过验证的格式,如果不是,它将抛出一个异常
假设Id的格式可能无效
Guid accountId;
bool parseCheck = Guid.TryParse(accountIdString, out accountId);
将尝试解析您的accountIdString,并根据成功与否向parseCheck返回true或false。如果成功,它还会将解析的Guid存储为accountId
使用哪一个取决于您是否知道每个Id都是有效的Guid格式。
static DataClasses1DataContext dbDataClasses = new DataClasses1DataContext();
static void Main(string[] args)
{
Guid someGuid;
if(Guid.TryParse("e8d82d5d", out someGuid))
{
var accountList = from accounts in dbDataClasses.ACCOUNTs where accounts.AccountGUID= someGuid
select accounts;
foreach (ACCOUNT temp in accountList)
{
Console.WriteLine("Account Name: " + temp.Name + " Account GUID: " + temp.AccountGUID);
}
}
else
{
//error handle
}
}
在与字符串进行比较之前,需要将Guid转换为字符串:
var accountList = from accounts in dbDataClasses.ACCOUNTs where accounts.AccountGUID.ToString()== "e8d82d5d"
但是,"e8d82d5d"不是guid,因此您永远不会看到此查询的任何结果。