PMedlem sedan jan. 20012 204 inlägg Vill loopa genom alla rader i en dataset och kolla om en column innehåller ett värde. Har denna kod men det fungerar inte...
Public Shared Function CheckUserName(ByVal strUserName As String, ByVal intSysID As Integer)
Dim objData As New SecurityDB()
Dim dsUsers As DataSet
dsUsers = objData.GetAllUsers(intSysID)
Dim row As DataRow
For Each row In dsUsers.Tables(0).Rows
If dsUsers.Tables(0).Columns("UserName").ToString = strUserName Then
Return True
End If
Next row
Return False
End Function
WalkerMedlem sedan okt. 2002188 inlägg Blandar du inte ihop det nu?
Lite osäker men det jag tror du gör nu äratt kolla om "namnet" på den första kolumnen är strUserName.
Testa
c#
foreach(DataRow row in ds.Tables[0])
{
if (row["username"] == strUserName) { return true;}
}
PMedlem sedan jan. 20012 204 inlägg översatte lite av din kod till vb.net blev så här:
Public Shared Function CheckUserName(ByVal strUserName As String, ByVal intSysID As Integer)
Dim objData As New SecurityDB()
Dim dsUsers As DataSet
dsUsers = objData.GetAllUsers(intSysID)
Dim row As DataRow
For Each row In dsUsers.Tables(0).Rows
If row("UserName") = strUserName Then
Return True
End If
Next
Return False
End Function
Sen i codebehind:
If Security.CheckUserName(tbUserName.Text, Session("SydId")) = False Then
lblMessage.Text = "instert"
Else
lblMessage.Text = "En användare med namnet existerar redan!"
End If
DataSetet innehåller information, det vet jag.
Felet är att insert alltid skrivs ut...
Red: i min kod har jag Tables(0).Rows - såg att du inte hade det i din men får fel annars...
PMedlem sedan jan. 20012 204 inlägg nu fungerade det... skickade in SydId istället för SysId... pinsamt!