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;}
}
3 svar · 208 visningar · startad av P
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
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;}
}
ö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...
nu fungerade det... skickade in SydId istället för SysId... pinsamt!