DUVIDA SOBRE AUTOCOMPLETAR DE COMBOBOX
Citação:Public Sub PreencheCombo(ByVal rCombo As ComboBox, ByVal rComandoSQL As String, ByVal rTabela As String, ByVal rCampoExibe As String, ByVal rCampoChave As String)
AbreBanco()
Dim DA As NpgsqlDataAdapter = New NpgsqlDataAdapter(rComandoSQL, conn)
Dim cmdSQL As New NpgsqlCommand(rComandoSQL, conn)
Dim DS As New DataSet
DA.Fill(DS, rTabela)
rCombo.DataSource = DS.Tables(rTabela)
rCombo.DisplayMember = rCampoExibe.Trim [ô]CAMPO QUE DEVE EXIBIR
rCombo.ValueMember = rCampoChave.Trim [ô]CAMPO QUE DEVE TRAZER A CHAVE
[ô]rCombo.AutoCompleteMode = AutoCompleteMode.Suggest
[ô]rCombo.AutoCompleteSource = AutoCompleteSource.CustomSource
[ô]For Each dr As DataRow In DS.Rows
[ô] cboFornecedor.AutoCompleteCustomSource.Add(dr([Ô]for_razaosocial[Ô]).ToString())
[ô]Next
FechaBanco()
End Sub
alguém pode me ajudar....
o código que esta comentado eu peguei da internet pra tetnar adaptar...mas não fui feliz nesta...
Alguém ai pode ajudar...
Abraços a todos...
2 - A propriedade AutoCompleteCustomDataSource, recebe um datasource(como um datareader por exemplo), não precisa percorrer linha por linha
3 - Use blocos using, isso garante que a conexão, o comando e o datareader serão fechados e descartados corretamente
Dim DA As NpgsqlDataAdapter = New NpgsqlDataAdapter(rComandoSQL, conn)
Dim cmdSQL As New NpgsqlCommand(rComandoSQL, conn)
Dim dr As New NpgsqlDataReader = cmdSQL.ExecuteReader()
cboFornecedor.AutoCompleteCustomSource.Add(dr)
E é só isso...
There is already an open DataRead associated with this Command which must be closed first
aqui esta o código da proc q ficou
Citação:
AbreBanco()
Dim DA As NpgsqlDataAdapter = New NpgsqlDataAdapter(rComandoSQL, conn)
Dim cmdSQL As New NpgsqlCommand(rComandoSQL, conn)
Dim DRTmp As NpgsqlDataReader = cmdSQL.ExecuteReader
Dim DS As New DataSet
DA.Fill(DS, rTabela)
rCombo.DataSource = DS.Tables(rTabela)
rCombo.DisplayMember = rCampoExibe.Trim [ô]CAMPO QUE DEVE EXIBIR
rCombo.ValueMember = rCampoChave.Trim [ô]CAMPO QUE DEVE TRAZER A CHAVE
rCombo.AutoCompleteMode = AutoCompleteMode.Suggest
rCombo.AutoCompleteSource = AutoCompleteSource.CustomSource
rCombo.AutoCompleteCustomSource.Add(DR([Ô]nome[Ô].Trim))
DA.Dispose()
cmdSQL.Dispose()
DRTmp.Close()
DS.Dispose()
Dim DS As New DataSet
DA.Fill(DS, rTabela)
rCombo.DataSource = DS.Tables(rTabela)
rCombo.DisplayMember = rCampoExibe.Trim [ô]CAMPO QUE DEVE EXIBIR
rCombo.ValueMember = rCampoChave.Trim [ô]CAMPO QUE DEVE TRAZER A CHAVE
rComandoSQL = [Ô]Select CAMPO_CODIGO, for_razaosocial from SUA_TABELA[Ô]
Dim DA As NpgsqlDataAdapter = New NpgsqlDataAdapter(rComandoSQL, conn)
Dim cmdSQL As New NpgsqlCommand(rComandoSQL, conn)
Dim dr As New NpgsqlDataReader = cmdSQL.ExecuteReader()
cboFornecedor.AutoCompleteCustomSource.Add(dr)
rCombo.DisplayMember = [Ô]for_razaosocial[Ô] [ô]CAMPO QUE DEVE EXIBIR
rCombo.ValueMember = [Ô]CAMPO_CODIGO[Ô] [ô]CAMPO QUE DEVE TRAZER A CHAVE
é SÓ ISSO que precisa
Citação:There is already an open DataRead associated with this Command which must be closed first