我是用guid做用户名登陆
UsersInfo user = usersbll.GetUsersByUserID(Convert.ToString(txtUser.Text));DAL里面
public UsersInfo GetUsersByUserID(string userID)
        {
            SqlParameter paramUserID = new SqlParameter(PARAM_USERID, SqlDbType.UniqueIdentifier);
            paramUserID.Value = userID;
            SqlDataReader dr = SQLHelper.ExecuteReader(SQLHelper.LSESConnectionString, CommandType.StoredProcedure, SP_SELECT_USERS_BY_ID, paramUserID);
            UsersInfo user = new UsersInfo();
            if (dr.Read())
            {
                user.UserID = dr["guid"].ToString();
            }
            return user;        }结果sqlhelper报错
将参数值从 String 转换到 Guid 失败。

解决方案 »

  1.   

    Guid  是XX什么的生成当前唯一的string ,可以作为唯一id 使用 。
    那个应该是只读的吧。
      

  2.   

    确保userID 是合法的guid字符串,不是数字id
      

  3.   

    Guid  id  =  new  Guid(YourString);  确保数据格式正确
      

  4.   

    UsersInfo user = usersbll.GetUsersByUserID(Convert.ToString(txtUser.Text));
    UsersInfo user = usersbll.GetUsersByUserID(txtUser.Text);
    这两种是一样的,
    如果你的txtUser是GUID类型的,肯定是可以的,你这个控件上的数值肯定不是GUID的
      

  5.   


    已说明问题了.
    另外,guid.tostring有重载方法,确保一致