following 13 following following- following--装置装置--following 13------------装置装置--------------13装置装置-装置13装置-装置13装置following 13 following following following- 13装置---13---

学生名/住所がない場合は、studentIDとloginIDを表示するには、ここにIf Else Statementを挿入するにはどうすればいいですか?

Sub ShowStudentInfo()
    Dim dt As DataTable = GetInfoForStudent("test", frmLogin.txtusername.Text, frmLogin.txtPassword.Text)

    With dt.Rows(0)
        frmLibrary.txtStudentID.Text = .Item("StudentID")
        frmLibrary.txtLoginID.Text = .Item("LoginID")
        frmLibrary.txtStudentName.Text = .Item("Student Name")
        frmLibrary.txtStudentAddress.Text = .Item("Student address")


    End With
End Sub
1

2 答え

Sub ShowStudentInfo()
    Dim dt As DataTable = GetInfoForStudent("test", frmLogin.txtusername.Text, frmLogin.txtPassword.Text)

    With dt.Rows(0)
        if .Item("Student Name")="" and .Item("Student address")="" then
            frmLibrary.txtStudentID.Text = .Item("StudentID")
            frmLibrary.txtLoginID.Text = .Item("LoginID")
        else
            frmLibrary.txtStudentName.Text = .Item("Student Name")
            frmLibrary.txtStudentAddress.Text = .Item("Student address")
        end if

    End With
End Sub

それはあなたが探していたものですか?

2
追加された
String.IsNullOrWhiteSpace - String.IsNullOrWhiteSpace(.item( "Student Name"))およびString.IsNullOrWhiteSpace(.item( "Student Address"))の場合はString.IsNullOrWhiteSpaceを使用する必要があります。
追加された 著者 APrough,
ちょうど私が上記のように。 "If"行にString.IsNullOrWhiteSpaceをそれぞれの.Item( "blahblah")の周りに置きます。 Andの代わりにAndAlsoも使用する必要があります。これはIf文を短絡させるので、最初の部分が偽であれば、2番目の部分のチェックにも気にしません。ほとんどの状況でうまく動作しますが、Andもパフォーマンスの小さな節約になります。
追加された 著者 APrough,
IsNUllOrWhiteSpaceは.NET 4.0で使用されています。以前のバージョンの.NETの場合、ほとんどの状況でIsNullOrEmptyが動作するはずです。
追加された 著者 APrough,
返される行のチェックを追加します。If dt.Rows.Count> 0 Then .... End If
追加された 著者 Ric,
あなたのようなものですが、学生名/住所のないユーザーでログインすると、このエラーが表示されます。位置0には行がありません。
追加された 著者 CompleteNewb,
String.IsNullOrWhiteSpaceはどこに配置しますか?
追加された 著者 CompleteNewb,
'IsNullOrWhiteSpace'は '文字列'のメンバではないこと、
追加された 著者 CompleteNewb,
dt.Rows.Count> 0 Then dt.Rows(0)でString.IsNullOrEmpty(.Item( "Student Name"))AndAlso String.IsNullOrEmpty(.Item( "Student Address"))を指定すると、 )次にfrmLibrary.txtStudentID.Text = .Item( "StudentID")frmLibrary.txtLoginID.Text = .Item( "LoginID")Else frmLibrary.txtStudentName.Text = .Item( "Student Name")frmLibrary.txtStudentAddress.Text =。項目( "Student address")End If End With End If
追加された 著者 CompleteNewb,
追加された 著者 CompleteNewb,

ゲージの答えを捨てるGetInfoForStudent関数が行を返さないため、結果が得られません。この場合、行数のIf文にはElse節がありません。行を追加するためにそこにいくつかのコードを入れて、それはうまくいくはずです。

Sub ShowStudentInfo()     
    Dim dt As DataTable = GetInfoForStudent("test", frmLogin.txtusername.Text, frmLogin.txtPassword.Text)
    If dt.Rows.Count > 0  then    
        With dt.Rows(0)         
            if String.IsNullOrEmpty(.Item("Student Name")) AndAlso String.IsNullOrEmpty(.Item("Student Name")) then                     
                frmLibrary.txtStudentID.Text = .Item("StudentID")             
                frmLibrary.txtLoginID.Text = .Item("LoginID")         
            else             
                frmLibrary.txtStudentName.Text = .Item("Student Name")                             
                frmLibrary.txtStudentAddress.Text = .Item("Student address")         
            end if      
        End With    
    Else
        'Do something here to add new row, etc.
    End If

エンドサブ

1
追加された
@Gage。申し訳ありませんが、あなたのつま先を踏み出すことを意味しませんでした。
追加された 著者 APrough,
@CompleteNewb。これはあなたのために機能しましたか?
追加された 著者 APrough,
申し訳ありませんが、昼食から戻ってきて、これをチェックしました。これは正解と思われるので、私は私を修正する必要はありません。
追加された 著者 Gage,
いいえ、全くありません。あなたは自分自身でイニシアチブを取ったが、それは良いことだ。私がこれをもう一度チェックするかどうかを知る方法はありませんでした。それについて心配しないでください。
追加された 著者 Gage,