Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Clauido José

consullta com datalista

Recommended Posts

precioso fazer uma consulta no data lista e não sei como vou fazer e assim tenho 4 tabelas, marca, modelos, carros e galeria de fotos todas relacionadas entre si na pagina principal so quero que pareça uma foto da galeria e ta aparecendo todas as fotos cadastradas como faço isso olha minha query como está.

 

 

 

 

 

string MySqlConnString = "Data Source=127.0.0.1;Database=carsystem;User Id=root;Password=root;port=3306";
using (MySqlConnection cn = new MySqlConnection(MySqlConnString))
{
string sql = "SELECT tcarro.*, tmarca.idmarca, tmarca.marca, tgaleriafotoscarro.*, tmodelos.idmarca, tmodelos.modelo ";
sql += "fROM ((tcarro INNER JOIN tmarca ON tcarro.idmarca = tmarca.idmarca) INNER JOIN tmodelos ON tcarro.idmodelo = tmodelos.idmodelo) ";
sql += "INNER JOIN tgaleriafotoscarro ON tcarro.idcarro = tgaleriafotoscarro.idcarro;";
MySqlDataAdapter adp = new MySqlDataAdapter(sql, cn);
DataTable dt = new DataTable();
adp.Fill(dt);
if (dt.Rows.Count > 0)
{
DataList1.DataSource = dt;
DataList1.DataBind();
}
}

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara e assim não sei se expressei bem, bom essa tela eu mostro todas as carros cadastrado no site mas tem que aparecer so uma foto tipo webmotors entendeu agora sera que vou ter que fazer a consulta da galeria de fotos separado?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Atah, entendi.

Tem mais de uma foto por carro, certo?

 

tente assim:

SELECT tcarro.*, tmarca.idmarca, tmarca.marca, ca.NomeDoCampoImagem, tmodelos.idmarca, tmodelos.modelo 
  FROM ((tcarro INNER JOIN tmarca ON tcarro.idmarca = tmarca.idmarca) INNER JOIN tmodelos ON tcarro.idmodelo = tmodelos.idmodelo) 
  INNER JOIN tgaleriafotoscarro ON tcarro.idcarro = tgaleriafotoscarro.idcarro;
  CROSS APPLY(SELECT TOP 1 * FROM tgaleriafotoscarro WHERE tgaleriafotoscarro.idcarro = tcarro.idcarro) ca

Onde: ca.NomeDoCampoImagem é o campo que contém a imagem do seu banco.

Compartilhar este post


Link para o post
Compartilhar em outros sites

esse

 

 

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'APPLY(SELECT LIMIT 1 * FROM tgaleriafotoscarro WHERE tgaleriafotoscarro.idcarro ' at line 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara testa assim:

SELECT tcarro.*, tmarca.idmarca, tmarca.marca, (SELECT TOP 1 CampoImagem FROM tgaleriafotoscarro WHERE tgaleriafotoscarro.idcarro = tcarro.idcarro), tmodelos.idmarca, tmodelos.modelo
  FROM ((tcarro INNER JOIN tmarca ON tcarro.idmarca = tmarca.idmarca) INNER JOIN tmodelos ON tcarro.idmodelo = tmodelos.idmodelo) 

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara to quase chegando la no mysql deu certo mas da erro não encontra o campo URL que e a imagem no data list verifiquei a query ela não traz o campo e sim o resultado da consulta, tentei colocar o campo da tabela para encontrar o campo URL e deu erro fiz da seguiinte maneira.

 

 

 

SELECT tcarro.*, tmarca.idmarca, tmarca.marca, (SELECT tgaleriafotoscarro.url FROM tgaleriafotoscarro WHERE tgaleriafotoscarro.idcarro = tcarro.idcarro LIMIT 1 ), tmodelos.idmarca, tmodelos.modelo, tgaleriafotoscarro.*

FROM ((tcarro INNER JOIN tmarca ON tcarro.idmarca = tmarca.idmarca) INNER JOIN tmodelos ON tcarro.idmodelo = tmodelos.idmodelo)

 

Assim da erro Unknown table 'tgaleriafotoscarro' se eu tiro vai mas nao funciona da erro

Compartilhar este post


Link para o post
Compartilhar em outros sites

Consegui resolvi era so colocar o "AS URL("nome da imagem")" na frente do parenteses do segundo select funciono fico assim.

 

 

SELECT tcarro.*, tmarca.idmarca, tmarca.marca, (SELECT tgaleriafotoscarro.url FROM tgaleriafotoscarro WHERE tgaleriafotoscarro.idcarro = tcarro.idcarro LIMIT 1 ) as URL, tmodelos.idmarca, tmodelos.modelo, tgaleriafotoscarro.*

FROM ((tcarro INNER JOIN tmarca ON tcarro.idmarca = tmarca.idmarca) INNER JOIN tmodelos ON tcarro.idmodelo = tmodelos.idmodelo)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Muito bom cara :D

 

Ta meio gambs, você sabe né kk

O certo seria usar cross apply, como no exemplo do post #4.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.