我有登录表单,它是重定向用户的级别,但在此之前,如果数据表上没有任何用户,我想重定向以创建管理表单。我有所有表单,但我没有设法重定向它们,因为我不知道如何创建语句。你能帮我解决一下这个问题。
Dim con As SqlCeConnection
Dim command As SqlCeCommand
con = New SqlCeConnection("Persist Security Info=False;Data Source=.\database.sdf;Password=********;File Mode=shared read")
con.Open()
command = New SqlCeCommand("select * from users where Name=? and Password=?", con)
Dim param1, param2 As SqlCeParameter
param1 = New SqlCeParameter("Name", uname.Text)
param2 = New SqlCeParameter("Password", pwd.Text)
command.Parameters.Add(param1)
command.Parameters.Add(param2)
Dim reader As SqlCeDataReader = command.ExecuteReader
If (reader.Read = True) Then
role = reader.GetString(1)
Else
MsgBox("Invalid Login")
End If
我有这个代码正在运行。写什么
Private Sub frmlogin_Load(ByVal sender As System.Object,ByVal e As System.EventArgs)处理MyBase.Load
End Sub
答案 0 :(得分:2)
我建议尝试使用DataReader的HasRows属性来确定是否有一行或多行返回到DataReader对象。
if (reader.HasRows)
{
reader.Read();
role = reader.GetString(1)
}
else
{
// invalid login
}
答案 1 :(得分:1)
我不确定我是否完全理解您的问题,但如果表格为空,则reader.Read()将评估为False。
我认为你想要的是一个检查users of Count表的SQL语句。 像
这样的东西command = New SqlCeCommand("SELECT COUNT(Name) as NameCount FROM Users", con)
然后你会通过做
之类的事来评估计数Dim reader as SqlCeDataReader = command.ExecuteReader()
While(reader.Read())
if reader("NameCount") = 0 then
'Redirect to Admin Form
else
'Run all your current logic here to find the user from the DB
end if
End While