2016-04-20 10 views
0

data(0)= X1であるかどうかを確認しようとしていますが、data(1)= Y1の値を文字列(MyString1)に代入したいと考えています。私は後でMyString1を呼び出すことができ、MyString1の値はY1に対応します。そして、私は彼の手順を繰り返すことができる必要があります:データに変数を代入する

データは(0)、次にX2をIF =(1)= Y2 MyString2にというように割り当てられるはずのデータ。

私は、彼らはX1とY1よりも固有のもので、データを単純化してきました。

以下に自分のコードを追加しました。

Dim cmd As Odbc.OdbcCommand = New Odbc.OdbcCommand(mystring, conn) 
Dim reader As Odbc.OdbcDataReader 
Dim columnCount As Integer 
Dim MyString1 As String 
Dim data As Object() = New Object(10) {} 
conn.Open() 
MsgBox("Connection Established!") 
reader = cmd.ExecuteReader() 
While reader.Read() 
    columnCount = reader.GetValues(data) 

    If data(0) = "X1" Then 
     MyString1 = data(1).ToString() 
    End If 

    Debug.WriteLine(data(0)) 
    Debug.WriteLine(data(1)) 
     My.Forms.Form2.TypeTextBox.Text = MyString1 
    End While 
    conn.Close() 

これは意味があると思います。

EDITは:私の問題は、私は30ブロックの場合のように持っているつもりだということです。このように:

If data(0) = "X1" Then 
     MyString1 = data(1).ToString() 
    End If 

私はこれをよりスマートに行うことが可能かどうか疑問に思っていましたか?私は完全にあなたが探しているものを理解し、単純な「If...Then...(Else)」のためのケースのように聞こえる場合

+0

あなたの問題は、何ですか? – user3598756

+0

私の問題は30 If文のようにするつもりです。 場合、データ(0)= "X1" 次に MyString1 =データ(1).ToString() END IF場合、データ(0)= "X2" 次に MyString2 =データ(1).ToString() END IF – user3359740

+0

[Select ... Case Statement](https://msdn.microsoft.com/en-us/library/cy37t14y.aspx)を使用するための完璧な例が好きです。ここでは、その使用方法を示すサンプルQ&Aを紹介します:http://stackoverflow.com/questions/20317630/applying-select-case – Ralph

答えて

0

イムかなり確実ではありません。 あなたの説明から私は最初にY2をデータ(1)に保存する必要はないと思う。

If data(0) = X1 Then 
    myString = Y2 
End If 

EDIT: ... [OK]を、今私は理解して...あなたは、このようSTH行うことができますか?

Dim i As Integer 
Dim data As Object() = New Object(30) {} 
Dim myString As String() = New String(30) {} 
For i = 0 To 30 
    If data(i) = ("X" + &i+1) Then 
    myString(i) = data(i+1).ToString() 
    End If 
Next i 
+0

ご返信ありがとうございます。私は今質問を更新しました。私の最大の問題は、ブロックすれば30のようにするつもりだということです。 – user3359740

+0

ありがとうございます。これは機能します。 – user3359740