DATAGRID COM CHAVE ESTRAGEIRA
Pessoal, estou com um form q tem um datagrid q chama valores de conta recebidas...
é Uma tabela que possui cod, data, valor, observacoes e a chave estrangeira do Cliente..
Mas ao chamar no datagrid na parte do cliente fica o cod dele... queria saber se tem como mostrar ao inves do codigo.. mostrar o nome...
pra chamar pro datagrid esta assim:
é Uma tabela que possui cod, data, valor, observacoes e a chave estrangeira do Cliente..
Mas ao chamar no datagrid na parte do cliente fica o cod dele... queria saber se tem como mostrar ao inves do codigo.. mostrar o nome...
pra chamar pro datagrid esta assim:
Dim con As MySqlConnection
Dim cmd As MySqlCommand
Dim dt As New DataTable
con = New MySqlConnection
con.ConnectionString = [Ô]Persist Security Info=True;server=localhost;User Id=root; password=admin;database=workshopmanager[Ô]
con.Open()
cmd = con.CreateCommand
With cmd
cmd.CommandType = CommandType.Text
cmd.CommandText = [Ô]SELECT * FROM valorrecebidocliente[Ô]
dt.Load(cmd.ExecuteReader())
frm_TeladeContas.DataGridView1.DataSource = dt.Copy()
End With
con.Close()
algueem ?
Mude o select de * para codigo do cliente, nome.
Ou altere a forma de popular o grid, coloque os valores diretamente nas colunas já criadas.
Ou altere a forma de popular o grid, coloque os valores diretamente nas colunas já criadas.
olha minha tabela do banco de dados:
Dentro do datagrid, eu queria transformar esse cod_Cliente no nome_Cliente da tabela Cliente.... pq fica mostrando o numero e é zuado isso..
Eu pesquisei um poco e achei alguns lugares q falavam q tinha q usar o SELECT com o INNER JOIN... mas nao consegui fazer
Create table ValorRecebidoCliente (
cod_valorrecebidocliente integer unsigned primary key not null auto_increment,
data_valorrecebidocliente varchar(30),
valor_valorrecebidocliente varchar(20),
observacoes_valorrecebidocliente varchar(100),
cod_Cliente integer unsigned not null,
Foreign Key (cod_Cliente) references Cliente (cod_Cliente) ON DELETE CASCADE) ENGINE=INNODB;
Dentro do datagrid, eu queria transformar esse cod_Cliente no nome_Cliente da tabela Cliente.... pq fica mostrando o numero e é zuado isso..
Eu pesquisei um poco e achei alguns lugares q falavam q tinha q usar o SELECT com o INNER JOIN... mas nao consegui fazer
Você tera que usar o LEFT JOIN assim
Espero ter ajudado
[ô]Dessa maneira ira retornar todas as colunas da tabela valorrecebidocliente mais o nome do cliente
SELECT VRC.*, CLI.nome_Cliente FROM valorrecebidocliente VRC LEFT JOIN tabela_cliente CLI ON (VRC.cod_Cliente = CLI.cod_Cliente)
Espero ter ajudado
Eu troquei o [Ô]SELECT * FROM valorrecebidocliente[Ô] por esse codigo mais n funcionou...
continua mostrando o codigo...
ou para usar esse codigo... vou ter q trocar o codigo para carregar os dados na datagrid ??
continua mostrando o codigo...
ou para usar esse codigo... vou ter q trocar o codigo para carregar os dados na datagrid ??
Cara você mudou o nome da tabela_cliente para a tabela correta e verificou o nome dos campos se estão iguais aos que encontra-se nas tabelas
????
????
sim mudei... e conferi os otros
Cara posta a estrutura da tabela clientes pra mim
tabela valorrecebidocliente:
E a tabela Cliente:
E o codigo esta assim dentro do evento load do form:
Create table ValorRecebidoCliente (
cod_valorrecebidocliente integer unsigned primary key not null auto_increment,
data_valorrecebidocliente varchar(30),
valor_valorrecebidocliente varchar(20),
observacoes_valorrecebidocliente varchar(100),
cod_Cliente integer unsigned not null,
Foreign Key (cod_Cliente) references Cliente (cod_Cliente) ON DELETE CASCADE) ENGINE=INNODB;
E a tabela Cliente:
Create table Cliente (
cod_Cliente integer unsigned primary key not null auto_increment,
nome_Cliente varchar(160) not null,
contato_Cliente varchar(20),
observacoes_Cliente varchar(100),
horadata_Cliente varchar(30),
tipo_Cliente varchar(10),
cod_PF integer unsigned not null,
Foreign key (cod_PF) references PF (cod_PF) ON DELETE CASCADE,
cod_Telefone integer unsigned not null,
Foreign Key (cod_Telefone) references Telefone (cod_Telefone) ON DELETE CASCADE,
cod_Endereco integer unsigned not null,
Foreign Key (cod_Endereco) references Endereco (cod_Endereco) ON DELETE CASCADE) ENGINE=INNODB;
E o codigo esta assim dentro do evento load do form:
Dim con As MySqlConnection
con = New MySqlConnection
con.ConnectionString = [Ô]Persist Security Info=True;server=localhost;User Id=root; password=admin;database=workshopmanager[Ô]
Dim cmd As MySqlCommand
Dim dt As New DataTable
cmd = con.CreateCommand
con.Open()
With cmd
cmd.CommandType = CommandType.Text
cmd.CommandText = [Ô]SELECT VRC.*, CLI.nome_Cliente FROM valorrecebidocliente VRC LEFT JOIN cliente CLI ON (VRC.cod_Cliente = CLI.cod_Cliente)[Ô]
dt.Load(cmd.ExecuteReader())
DataGridView1.DataSource = dt.Copy()
End With
con.Close()
Consulta simples na qual fiz um teste agora e funcionou.
CommandText = [Ô]Select Cliente.Nome_Cliente,ValorRecebidoCliente.data_valorrecebidocliente,ValorRecebidoCliente.valor_valorrecebidocliente From Cliente,ValorRecebidoCliente Where ValorRecebidoCliente.cod_cliente=Cliente.cod_cliente[Ô].
Tiro e queda.
Valeu
CommandText = [Ô]Select Cliente.Nome_Cliente,ValorRecebidoCliente.data_valorrecebidocliente,ValorRecebidoCliente.valor_valorrecebidocliente From Cliente,ValorRecebidoCliente Where ValorRecebidoCliente.cod_cliente=Cliente.cod_cliente[Ô].
Tiro e queda.
Valeu
Tópico encerrado , respostas não são mais permitidas