c# - 从 C# 将 GUID 存储在 MySQL 中

标签 c# mysql

尝试通过 C# (.NET) 将 Guid 持久保存在 MySQL 数据库中。 MySQL 列的类型为 BINARY(16)。关于如何保留 guid 并稍后从 MySQL 取回 guid 的任何建议?在这里寻找代码答案:-)

最佳答案

想通了。这是如何......

数据库架构

CREATE TABLE `test` (                                            
     `id` BINARY(16) NOT NULL,                                      
     PRIMARY KEY  (`id`)                                            
)

代码

string connectionString = string.Format("Server={0};Database={1};Uid={2};pwd={3}", "server", "database", "user", "password");

Guid orgId = Guid.NewGuid();
Guid fromDb = Guid.Empty;

using (MySqlConnection conn = new MySqlConnection(connectionString))
{
    conn.Open();

    using (MySqlCommand cmd = new MySqlCommand("INSERT INTO test (id) VALUES (?id)", conn))
    {
        cmd.Parameters.Add("id", MySqlDbType.Binary).Value = orgId.ToByteArray();
        cmd.ExecuteNonQuery();
    }

    using (MySqlCommand cmd = new MySqlCommand("SELECT id FROM test", conn))
    {
        using (MySqlDataReader r = cmd.ExecuteReader())
        {
            r.Read();
            fromDb = new Guid((byte[])r.GetValue(0));
        }
    }
}

关于c# - 从 C# 将 GUID 存储在 MySQL 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/742099/

相关文章:

c# - 动态更改 log4net 连接字符串

php - 需要使用 PHP 在 MySQL 数据库之间传输数据的帮助

php - 显示 Zend Framework 表中的所有记录

mysql 计算 sql 语法中的单词

php - Laravel 查询生成器 : Multiple where/orWhere and precendence of and/or

c# - 删除 Amazon S3 存储桶中早于 X 天的每个文件的版本

c# - 匿名方法 vs 扩展方法 vs Lambda 表达式 vs Linq

c# - 在 WPF/MVVM 上导航/加载不同的 View

c# - 0x80005000 UserPrincipal.GetGroups 出现未知错误,OU 中有特殊字符

MySQL 唯一索引和 NULL 值