0

我正在尝试使用 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'

任何帮助,将不胜感激。谢谢

4

5 回答 5

2

查看该类的文档Guid。有一个带有 a 的构造函数,string还有一个Parse静态方法

于 2013-07-10T15:43:15.043 回答
1

采用

Guid.Parse()

Guid.ParseExact() 在您的字符串上使用它之前:

where accounts.AccountGUID= "e8d82d5d"

它应该是这样的:

 where accounts.AccountGUID= Guid.Parse("e8d82d5d")
于 2013-07-10T15:44:58.527 回答
1

有两种方法可以做到

假设所有 Id 的格式都是有效的

Guid accountId = Guid.Parse(accountIdString);

假设您的 accountIdString 始终采用经过验证的格式,如果不是,则会引发异常

假设 ID 的格式可能无效

Guid accountId;
bool parseCheck = Guid.TryParse(accountIdString, out accountId);

将尝试解析您的 accountIdString,并根据它是否成功返回 true 或 false 给 parseCheck。如果成功,它还将解析的 Guid 存储为 accountId

您使用哪一个取决于您是否知道每个 Id 都是有效的 Guid 格式。

于 2013-07-10T16:31:25.883 回答
0
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
        }


   }
于 2013-07-10T15:46:35.770 回答
-1

在与字符串进行比较之前,您需要将 Guid 转换为字符串:

var accountList = from accounts in dbDataClasses.ACCOUNTs where accounts.AccountGUID.ToString()== "e8d82d5d"

但是“e8d82d5d”不是一个 guid,所以你永远不会看到这个查询的任何结果。

于 2013-07-10T15:44:29.067 回答