1

少しのヒントや助けをいただければ幸いです。よろしくお願いします。

私は、、、 is 、isの3 つの列を持つという名前のテーブルDataBound ComboBoxから、と という名前の2 つを持っています。MySql"formmaintenance"FormCodeFormNameFormDescriptionCombobox DisplayMemberFormCodeValueMemberFormCodeTextBoxestxtNametxtDesc

私がしたいのは、コンボボックス(例:form101)でアイテムを選択したときに、選択したアイテム(例:Paper)の値をFormNameオンtxtNameFormDescriptionオンに表示したいということですtxtdesc

私はVb.Netを初めて使用するため、これを開始する方法をまだ知りません。

これが私のコードです(更新済み

 If conn.State = ConnectionState.Closed Then
            conn.ConnectionString = "Server = localhost; Username= root; Password =; Database =forms"
            Try
                conn.Open()
                MsgBox("Connection Established")
                Dim dt As New DataTable

                Dim sql = "SELECT FormName FROM formma WHERE  FormCode = '" & cmbCode.Text & "';"
                Dim Result As String


                cmd.Connection = conn
                cmd.CommandText = sql
                Result = cmd.ExecuteScalar()
                da.SelectCommand = cmd

                dr = cmd.ExecuteReader()

                If Result IsNot Nothing Then
                    txtName.Text = Result.ToString()

                End If

            Catch ex As MySqlException
                Console.WriteLine("Error: " & ex.ToString())

            End Try
        End If

    End Sub
4

2 に答える 2

2

コンボボックスの SelectedIndex_Changed Event には、以下のように記述します。

Dim st As String = "SERVER=localhost;DATABASE=forms;UID=root;"
Dim conn As New MySqlConnection(st)
Dim cmd As MySqlCommand = conn.CreateCommand()
cmd.CommandText = "SELECT FormName, FormDescription FROM formmaintenance WHERE  FormCode = '" + cmbCode.Text + "'"
conn.Open()
Dim dr As MySqlDataReader = cmd.ExecuteReader()
If dr.Read() Then
    txtName.Text = dr(0).ToString()
    txtdesc.Text = dr(1).ToString()
End If
于 2012-10-29T06:37:53.620 に答える
2

あなたの質問を正しく理解できたなら、ここにヒントがあります。

1- DB からデータをロードし、コンボボックスにバインドします。

     Dim tableFormula as new DataTable("formula");
     using (Dim sqlConn as new SqlConnection("Server = localhost; Username= root; Password =; Database =forms"))
     {
        Dim sqlQuery  as string = "SELECT FormCode, FormName, FormDescription FROM formma;"
        Dim cmd as new SqlCommand(sqlQuery, sqlConn);
        Dim da  as new SqlDataAdapter(cmd); 
        //create dataTable and bind it with dataSet:
        da.Fill(tableFormula);
     }              
     //setting dataSource to comboBox:
     this.cmbCode.DataSource = new BindingSource(tableFormula, null);

2- cmbCode コンボボックスの SelectedIndex_Changed イベント ハンドラで、コンボボックスの選択された項目に基づいてテキストを設定します。

        if(cmbCode.SelectedItem != null) 
        {
            txtName.Text = ((DataRow)cmbCode.SelectedItem)["FormName"].ToString();
            txtdesc.Text = ((DataRow)cmbCode.SelectedItem)["FormDescription"].ToString();
        }

HTH。

于 2012-10-29T07:13:18.877 に答える