我有这样的代码在我的项目:无效转换异常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