SQLite中的GUID数据

QLite实际上只有5种数据类型,NULL,INTEGER,REAL,TEXT,BLOB,GUID实际上就是BLOB,也就是二进制,用二进制的方式来保存的,只量SQLite Expert通过判断是GUID类型显示成了GUID的格式。GUID的二进制格式也是有讲究的,否则直接ToString()也得不到正确的二进制格式。下面这段代码就是将GUID转换成正确的二进制字符串格式。

private string ConvertGuid(Guid gd)
{
    string sgd = gd.ToString().ToUpper();
    string sVar = "";
    int i;

    foreach (string sv in new string[] {
        sgd.Substring(0, 8), sgd.Substring(9, 4), sgd.Substring(14, 4) })
    {
        for (i = sv.Length - 2; i >= 0; i -= 2)
        {
            sVar += sv.Substring(i, 2);
        }
    }

    sgd = sgd.Substring(19).Replace("-", "");
    for (i = 0; i < 8; i++)
    {
        sVar += sgd.Substring(2 * i, 2);
    }

    return sVar;
}

然后在查询的时候:
SELECT * FROM [T] WHERE UPPER(HEX([GV]))='" + ConvertGuid(new GUID("{180B5234-6F39-45AF-AA5D-223580C5DFA9}")) + "'";
函数HEX()是将二进制转换成字符串,UPPER是转换成大写。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值