1

当我尝试在 ListView 中编辑我的文本并随后在数据库中更新它时,我遇到了这个错误。当我单击 ListView 中的更新按钮时,会显示此错误消息。由于我的 UserID 是唯一标识符,因此无法将其更新到我的数据库中。但我真的不知道要对我的代码进行哪些更改。

我的错误信息显示:

Implicit conversion from data type sql_variant to uniqueidentifier is not allowed. Use the CONVERT function to run this query.

我在 .cs 中的 SQL 语句:

protected void updateComment(object sender, ListViewUpdateEventArgs e)
{

    MembershipUser currentUser = Membership.GetUser();
    Guid currentUserId = (Guid)currentUser.ProviderUserKey;

    var ID= ListView1.DataKeys[e.ItemIndex].Value.ToString();

    string connectionString = ConfigurationManager.ConnectionStrings["ASPNETConnectionString"].ConnectionString;
    SqlConnection myConnect = new SqlConnection(connectionString);

    string updateSql = "UPDATE Review set ContentRev =@ContentRev WHERE ID = @ID";

    using (SqlConnection myConnection = new SqlConnection(connectionString))
    {
        myConnection.Open();

        SqlCommand myCommand = new SqlCommand(updateSql, myConnection);
        myCommand.Parameters.AddWithValue("@ID", ID);
        myCommand.Parameters.AddWithValue("@ContentRev ", TextBox1.Text.Trim());

        myCommand.ExecuteNonQuery();

        myConnection.Close();

        ListView1.DataBind();
        }

我的 Userid 数据类型是 Object,ContentRev 是 String。

4

1 回答 1

4

这是你的问题:

var ID = ListView1.DataKeys[e.ItemIndex].Value.ToString();

如果这是一个 uniqueIdentifier(或 GUID),它应该是:

Guid ID = new Guid(ListView1.DataKeys[e.ItemIndex].Value.ToString());

我实际上认为var ID只要右侧是 GUID 就可以了。

于 2012-07-31T12:47:19.610 回答