我有這樣的代碼在我的項目:無效轉換異常GUID字符串
string userId = Membership.GetUser(username).ProviderUserKey.ToString();
SqlConnection conn = new SqlConnection(connectionString);
SqlCommand cmd = new SqlCommand("UPDATE aspnet_Membership SET IsLockedOut = 0, LastLockoutDate = @LastLockedOutDate WHERE UserId = @Userid", conn);
cmd.Parameters.Add("@LastLockedOutDate", SqlDbType.DateTime).Value = DateTime.Now;
cmd.Parameters.Add("@Userid", SqlDbType.VarChar, 255).Value = userId;
int rowsAffected = 0;
conn.Open();
rowsAffected = cmd.ExecuteNonQuery();
此作品在我的本地機器上美妙。用戶獲得解鎖沒有問題。但是當我把它部署到遠程服務器上的演示站點某種原因,我得到這個錯誤:
InvalidCastException: Failed to convert parameter value from a Guid to a String
它的失敗在cmd.ExecuteNonQuery線。我嘗試將參數更改爲uniqueidentifier並傳遞實際的guid,但那也不起作用。
有人知道爲什麼這將在本地工作,但不在遠程服務器上?或者知道一種方法,我可以修改代碼以可能工作?
其實我不行。之前的人創建了一個自定義會員提供商,因爲他們決定向aspnet_membership添加幾個列。此代碼位於自定義提供程序中。 – William
查看已更新回答 –
與我的實施有何不同?我會不會仍然遇到轉換錯誤? – William