我可以获取登录用户ID,但是当我尝试将cookie传递给查询时,我收到上述错误。我该如何转换价值?在表中,值为(d606e50f-0a5c-42d6-a8eb-4219465e8a5e)
Dim myObject As MembershipUser = Membership.GetUser()
Dim UserId As String = myObject.ProviderUserKey.ToString()
Dim cookieUser As HttpCookie = New HttpCookie("UserId")
cookieUser.Value = UserId.ToString()
Response.Cookies.Add(cookieUser)
Dim DS As DataSet
DS = U.RunQuery("SELECT [FirstName], [LastName], [Email], [Phone] from aspnet_Users Where @UserId = "(cookieUser))
FirstNameTextBox.Text = DS.Tables(0).Rows(0)("FirstName")
LastNameTextBox.Text = DS.Tables(0).Rows(0)("LastName")
EmailTextBox.Text = DS.Tables(0).Rows(0)("Email")
PhoneTextBox.Text = DS.Tables(0).Rows(0)("Phone")
谢谢!
答案 0 :(得分:0)
问题如下
UserId = "(cookieUser)
VB.Net将其视为字符串常量,后跟(value)
,它将其视为字符串的索引。因此,它试图将cookieUser
解释为Integer
并失败。看起来你正在尝试在这里连接字符串,如果是这样,请执行以下操作
UserId = " & cookieUser
请注意,这似乎打开了您的SQL注入攻击。使用查询构建器并清理输入比使用原始字符串连接构建SQL查询要好得多