Ir para conteúdo

Arquivado

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

Stinger

MS SQL - Tabelas relacionadas no datagrid

Recommended Posts

Migrei minha aplicação de Access para MS SQL Server e estou com um erro quando faça conexão ao banco de dados usando uma relação entre várias tabelas. Quando tento retornar o valor no datagrid aparece uma mensagem de erro falando que não foi encontrado o campo. Estou fazendo a connectionstring da seguinte maneira:

 

"SELECT tbPedidos.*, tbMercados.*, tbCategorias.*, tbDestino.* " & _	"FROM ((tbPedidos INNER JOIN tbMercados ON tbPedidos.ID_Mercado = tbMercados.ID_Mercado) INNER JOIN tbCategorias ON tbPedidos.ID_Categoria = tbCategorias.ID_Categoria) INNER JOIN tbDestino ON tbPedidos.ID_Destino = tbDestino.ID_Destino " & _	"WHERE bln_Emitido = 0 AND bln_Concluido = 0 ORDER BY tbPedidos.ID_Pedido DESC"

Como existe o mesmo campo em 2 tabelas diferentes eu tento acessá-los da seguinte maneira através do datagrid:

 

<asp:BoundColumn DataField="tbMercados.txt_Abrev" HeaderText="Merc." HeaderStyle-Width="40px"/><asp:BoundColumn DataField="tbCategorias.txt_Abrev" HeaderText="Cat." HeaderStyle-Width="40px"/>

Dessa maneira funcionava com o access.. mas no SQL Server não funciona. Se alguém souber onde estou errando..

 

Vlw..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Meu código para carregar o DataGrid está da seguinte maneira:

 

Public Shared Sub dgFill(ByVal strSQL As String, ByVal objDG As DataGrid, ByVal objDb As SqlConnection)			'##################################'			'###   Preencher DataGrid	   ###'			'##################################'			Dim objCmd As New SqlDataAdapter(strSQL, objDb)			Dim dt As New DataTable			objCmd.Fill(dt)			If dt.Rows.Count > 0 Then objDG.DataSource = dt : objDG.DataBind() Else objDG.Visible = False		End Sub
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load			If Not Page.IsPostBack Then				Call Administracao.dgFill(strSQL_Nao, dgNao, sysGbl.objLogistica)				If dgNao.Items.Count = 0 Then hlNao.Visible = False			End If		End Sub

PS: strSQL_Nao é o código do primeiro post.

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara.. você vai precisar de todos os campos das tabelas q você selecionou ??? pq senao vai eu sugiro você colocar somente os campos q você quer e colocar um alias nas tabelas para facilitar sua vida...[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Seriam todos os campos das tabelas mesmo, é um datagrid gigante esse...Teria um exemplo de como eu posso definir um Alias, já haviam comentado que eu poderia fazer isso, mas não sei como.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Stinger,uma forma seria assimselect campo AS Apelido_sem_espacoou assimselect campo AS [apelido com espaco]falowst+

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.