欢迎投稿

今日深度:

SQLite中的GUID数据,SQLiteGUID数据

SQLite中的GUID数据,SQLiteGUID数据


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是转换成大写。

www.htsjk.Com true http://www.htsjk.com/SQLite/30114.html NewsArticle SQLite中的GUID数据,SQLiteGUID数据 QLite实际上只有5种数据类型,NULL,INTEGER,REAL,TEXT,BLOB,GUID实际上就是BLOB,也就是二进制,用二进制的方式来保存的,只量SQLite Expert通过判断是GUID类型显示...
相关文章
    暂无相关文章
评论暂时关闭