如果陈述不起作用.帮助! [英] If statment not working. Help!

查看:42
本文介绍了如果陈述不起作用.帮助!的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

Hiya偷看!

我有个问题.我有两个IF陈述,但都不起作用.

这是我使用的代码.

代码:

Hiya peeps!

I have a problem. I have two IF statments but neither are working.

Here is the code I have used.

Code:

Private Sub ViewUser_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    Try

        Dim connection As New MySqlConnection("server=" & My.Settings.MysqlHost & ";user id=" & My.Settings.MysqlUsername & "; password=" & My.Settings.MysqlPassword & "; port=3306; database=" & My.Settings.MysqlDatabase & "; pooling=false")
        connection.Open()

        Dim usersql As New MySqlCommand("SELECT * FROM `accounts` WHERE `id` = ''" & My.Settings.VUID & "'' LIMIT 1", connection)
        usersql.ExecuteNonQuery()

        Dim userreader = usersql.ExecuteReader()

        While (userreader.Read())
            Dim name As String = userreader.GetString(1) & " " & userreader.GetString(2)
            Dim accounttype = ""
            Dim activity = userreader.GetString(8)

            accname.Text = StrConv(name, VbStrConv.ProperCase)
            accid.Text = userreader.GetString(0)
            accemail.Text = userreader.GetString(3)
            accusername.Text = userreader.GetString(4)

            If userreader.GetString(9).Equals(1) Then
                accounttype = "Tenant"
                setpaid.Hide()
                setunpaid.Hide()
            ElseIf userreader.GetString(9).Equals(2) Then
                accounttype = "Landlord"
            End If

            If activity.Equals(1) Then
                accactive.Text = "Suspended"
                suspenduser.Hide()
            Else
                accactive.Text = "Active"
                unsuspend.Hide()
            End If

            acctype.Text = accounttype
            usersql.Dispose()
        End While
    Catch ex As MySqlException
        MessageBox.Show(ex.Message)
    End Try
End Sub





这就是整个代码片段.一切正常.但是这个

代码:





That is the whole code snippet. Everything is working. But this;

Code:

If userreader.GetString(9).Equals(1) Then
    accounttype = "Tenant"
    setpaid.Hide()
    setunpaid.Hide()
ElseIf userreader.GetString(9).Equals(2) Then
    accounttype = "Landlord"
End If

If activity.Equals(1) Then
    accactive.Text = "Suspended"
    suspenduser.Hide()
Else
    accactive.Text = "Active"
    unsuspend.Hide()
End If





如果有人有任何想法请帮助!

非常感谢,

James.





If anyone has any ideas please help!

Many thanks,

James.

推荐答案

最明显的事情是,您正在读取字符串,并尝试检查它是否等于一个整数,而该整数将永远不会成为整数. br/>
测试.Equals("1")或使用GetInt(x).Equals(1).
Well the most obvious thing is that you are reading a string and trying to check if it is equal to an integer, which it never will be.

Either test for .Equals("1") or use GetInt(x).Equals(1).


您可能还想使用选择用例,而不是嵌套的if语句.将其与ctype结合使用可将字符串转换为整数.

you might also want to use a select case, instead of nested if statements. combine this with a ctype to convert an string into an integer.

<pre lang="sql">Select Case CType(userreader.GetString(9), Integer)<br />
<br />
    Case 1<br />
<br />
    Case 2<br />
<br />
    Case 9<br />
<br />
    Case Else<br />
<br />
End Select</pre><br />


除了上一个答案,我将在if语句上放置断点并逐步执行代码.

通过这种方式,您可以看到正在发生或正在逐行更改的内容.
Adding to the previous answer, I would put break points on the if statements and step through the code.

This way you can see what is happening or changing line by line.


这篇关于如果陈述不起作用.帮助!的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆