下面是該查詢:如何讓產生的UUID由MySQL爲C#變量
string query = @"INSERT INTO session (PK_Id, user_id, login_time, machine_ip, machine_fingerprint)
VALUES (UUID(), @UId, @LogInTime, @MIp, @MFingerPrint);
";
現在我需要這最後插入的ID後面,這是由MySQL生成的UUID。據我所知,UUIDs沒有select_last_insert_id()函數!我讀了php,你可以先將UUID()函數分配給一個變量,然後返回該值。但在C#中如何去做呢?
這樣的事情,但不完全:
string query = @"INSERT INTO session (PK_Id, user_id, login_time, machine_ip, machine_fingerprint)
VALUES (@UUID = SELECT UUID(), @UId, @LogInTime, @MIp, @MFingerPrint);
"; //how to do this here?
這裏更多的是我的代碼:
string query = @"INSERT INTO session (PK_Id, user_id, login_time, machine_ip, machine_fingerprint)
VALUES (@UUID = SELECT UUID(), @UId, @LogInTime, @MIp, @MFingerPrint);
";
try
{
if (_conn.State != ConnectionState.Open)
_conn.Open();
MySqlCommand cmd = new MySqlCommand(query, _conn);
cmd.Parameters.AddWithValue("@UId", Utility.usr.Id);
cmd.Parameters.AddWithValue("@LogInTime", DateTime.Now);
cmd.Parameters.AddWithValue("@MIp", GetMachineIP());
cmd.Parameters.AddWithValue("@MFingerPrint", GetHardwareFingerPrint());
var s= Convert.ToString(cmd.ExecuteScalar()); //this returns an empty string :(
//I need to get it to any .NET data type, string, or Guid or byte[] or anything.
但我需要的s
這個數據類型在另一個WHERE
子句中使用的查詢像這樣:
string query = @"UPDATE session SET logout_time = @LogOutTime
WHERE user_id = @UId AND PK_Id = @SessionId";
try
{
if (_conn.State != ConnectionState.Open)
_conn.Open();
MySqlCommand cmd = new MySqlCommand(query, _conn);
cmd.Parameters.AddWithValue("@UId", Utility.usr.Id);
cmd.Parameters.AddWithValue("@SessionId", s);
cmd.Parameters.AddWithValue("@LogOutTime", DateTime.Now);
cmd.ExecuteScalar();
這裏是U UID字段在同一個表中。所以基本上,我怎麼能在C#中獲得MySQL varbinary字段,以便通過在另一個查詢中指定WHERE來使用該類型來更新?
在MySQL表中,UUID字段是varbinary (我希望看到一些不是另一個php鏈接的解決方案,或者不要求我在數據庫中切換到char數據類型:))。
編輯:這裏的問題是我們已經在表中添加了大量由MySQL生成的UUID,所以我對將MySQL UUID更改爲.NET Guid有點擔心。如果這是唯一的解決方法,我會考慮這一點。只是這是我們第一次需要插入的UUID值,以便我可以在另一個查詢中更新另一個時間點。
一個小問題:.NET Guid與MySQL UUID完全一樣嗎?
您是否嘗試過'Guid'類型? – PinnyM 2012-04-05 16:13:43
@PinnyM試過哪裏?將GUID添加到UUID字段中或者將插入的UUID作爲GUID? – 2012-04-05 16:15:03
要麼 - 見http://stackoverflow.com/questions/742099/store-guid-in-mysql-from-c-sharp – PinnyM 2012-04-05 16:15:39