.net GUID+;数据绑定给出了例外?

.net GUID+;数据绑定给出了例外?,.net,data-binding,ado.net,guid,.net,Data Binding,Ado.net,Guid,我有以下代码: string ConnString = ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString; string SqlString = "Select * From Memberships WHERE ApplicationId = @username"; using(SqlConnection conn = new SqlConnection(ConnString)) { u

我有以下代码:

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()上的代码会中断,并出现以下错误:从字符串转换为uniqueidentifier时,转换失败。这是因为我在查询中使用的是ApplicationId,而不是用户名。使用用户名,一切正常


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

数据库中应用程序ID的类型是什么?如果guid-您的问题是将字符串参数与guid进行比较。 投一个

差不多 转换(nvarchar(50),应用程序ID)

另见

是,ApplicationID是一个GUID。你能帮我在我的查询中如何转换@username的值吗?就是这样!谢谢你的帮助。然而,这让我想知道,为什么要在DataBind()方法中抛出异常?因为据我所知,您实际上只在绑定时获取数据。我有一种感觉,它会是这样的。谢谢你的帮助。