0

DataGridViewComboBoxColumn と DataGridViewTextBoxColumn を持つ単純な datagridview があります。コンボボックスは次のように入力されます: (PNcombo.text は標準のコンボボックスです)

  Dim objConn As New SqlConnection(DatabaseConnection.FISSQLConnectionString)
    Dim str1 As New StringBuilder
    str1.Append("SELECT cp.Description, cp.CollectionPointId ")
    str1.Append("FROM CollectionPoints cp INNER JOIN ")
    str1.Append("   Products p ON cp.ProductIdValue = p.ProductId ")
    str1.Append("WHERE p.PartNumber = N'" & Trim(PNcombo.Text) & "'")
    Dim objCommand As SqlCommand = New SqlCommand(str1.ToString, objConn)
    objConn.Open()
    Dim dt As New DataTable
    dt.Load(objCommand.ExecuteReader)

   Dim colDesription As New DataGridViewComboBoxColumn
    With colDesription
        .DataSource = dt
        .DisplayMember = "Description"
        .ValueMember = "Description"
    End With
    Me.DataGridView1.Columns.Add(colDesription)

  Dim colCollectionPoint As New DataGridViewTextBoxColumn
    With colCollectionPoint
        .Name = "CollectioPntId"
        .DataPropertyName = "CollectionPointId"
    End With
    DataGridView1.Columns.Add(colCollectionPoint)

dgv のコンボックスは正しく読み込まれますが、関連する「CollectionPointID」を取得して、dgv 内のテキスト ボックスに配置する必要があります。

ここから、コンボボックスから選択したセル値を取得する方法がわかりません。

4

1 に答える 1

1

私は通常、セルの .Value プロパティを参照しますが、.Value は type であるため、正しい型 (例では String ) にキャストする必要がありますObject

DirectCast(DataGridView1.SelectedRows(0).Cells("Description").Value, String)また

CStr(DataGridView1.SelectedRows(0).Cells("Description").Value)
于 2013-08-27T23:27:10.350 に答える