0

我有以下代码:

string ConnString = ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString;
string SqlString = "Select * From Memberships WHERE ApplicationId =  @username";
using(SqlConnection conn = new SqlConnection(ConnString)) {
  using(SqlCommand cmd = new SqlCommand(SqlString, conn)) {
    cmd.CommandType = CommandType.Text;
    SqlParameter param = new SqlParameter();
    param.ParameterName = "@username";
    param.Value = UserName2.Text;
    cmd.Parameters.Add(param);
    conn.Open();
    using(SqlDataReader reader = cmd.ExecuteReader()) {
      test.DataSource = reader;
      test.DataBind();
    }
  }
}

在这种情况下,代码在 DataBind() 上中断并出现以下错误:从字符串转换为唯一标识符时转换失败。这是因为我在查询中使用 ApplicationId 而不是 UserName。使用 UserName 一切正常。

我知道 GUID 导致了错误,但我不知道为什么以及如何修复它。

4

1 回答 1

0

您的数据库中的 AplicationId 类型是什么?如果 guid - 您的问题是将字符串参数与 guid 进行比较。投其中之一。

类似 convert(nvarchar(50), ApplicstionID)

另请参见 SQL Server:在 case 语句中将 UniqueIdentifier 转换为字符串

于 2013-04-06T14:26:36.207 回答