none
datagrid com chave estrangeira RRS feed

  • Pergunta

  • Pessoal, estou com um form q possui um datagrid q chama para ele a tabela: "valorrecebidocliente" do banco de dados.
    É Uma tabela que possui cod, data, valor, observacoes e a chave estrangeira "cod_Cliente" da tabela Cliente.
    Mas ao chamar no datagrid na parte do cod_cliente fica o codigo dele... queria saber se tem como mostrar ao inves do codigo.. mostrar o nome_Cliente...

    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()

    Dentro do datagrid, eu queria transformar esse cod_Cliente no nome_Cliente da tabela Cliente....  pq fica mostrando o numero do codigo 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

    Alguem pode me ajudar?? valeeu

    segunda-feira, 15 de outubro de 2012 22:11

Respostas

  • Desculpa esqueci k e vb:

    Private Sub button12_Click(sender As Object, e As EventArgs)
    
    	Dim sql As String = "Select c.OBS, a.FirstName From Table_OBS c Inner Join Table_Inf a ON c.IDMe = a.ID Where c.IDMe =@ID"
    
    	Dim conecao As New SqlConnection()
    	conecao.ConnectionString = "Data Source=LEVI-PC\SQLEXPRESS;Initial Catalog=Teste_One;Integrated Security=True"
    
    	Dim tabela As DataTable = Nothing
    	Try
    
    
    		Using conecao
    			Dim comandos As New SqlCommand()
    			comandos.CommandText = sql
    			comandos.CommandType = System.Data.CommandType.Text
    			comandos.Connection = conecao
    			comandos.Parameters.AddWithValue("@ID", textBox1.Text)
    			Dim adapter As New SqlDataAdapter()
    			adapter.SelectCommand = comandos
    			tabela = New DataTable()
    			adapter.Fill(tabela)
    
    			Me.dataGridView2.DataSource = tabela
    		End Using
    
    	Catch ex As Exception
    		ex.Message.ToString()
    	End Try
    
    End Sub


    http://malange-levi.blogspot.co.uk/

    domingo, 28 de outubro de 2012 20:46
    Moderador

Todas as Respostas

  • sim voce vai ter de usar inner join primeiro e deois encher a o teu datagridview.
    
      private void button12_Click(object sender, EventArgs e)
            {
               
                string sql = @"Select c.OBS, a.FirstName From Table_OBS c Inner Join Table_Inf a ON c.IDMe = a.ID Where c.IDMe =@ID";
       
                SqlConnection conecao = new SqlConnection();
                conecao.ConnectionString = @"Data Source=LEVI-PC\SQLEXPRESS;Initial Catalog=Teste_One;Integrated Security=True";
    
                DataTable tabela = null;
                try
                {
    
    
                    using (conecao)
                    {                   
                            SqlCommand comandos = new SqlCommand();
                            comandos.CommandText = sql;
                            comandos.CommandType = System.Data.CommandType.Text;
                            comandos.Connection = conecao;
                            comandos.Parameters.AddWithValue("@ID", textBox1.Text);
                            SqlDataAdapter adapter = new SqlDataAdapter();
                            adapter.SelectCommand = comandos;
                            tabela = new DataTable();
                            adapter.Fill(tabela);
                            this.dataGridView2.DataSource = tabela;
    
                        }
                    }
                
                catch (Exception ex)
                {
                    ex.Message.ToString();
                }
    
            }
    



    http://malange-levi.blogspot.co.uk/

    domingo, 28 de outubro de 2012 20:43
    Moderador
  • Desculpa esqueci k e vb:

    Private Sub button12_Click(sender As Object, e As EventArgs)
    
    	Dim sql As String = "Select c.OBS, a.FirstName From Table_OBS c Inner Join Table_Inf a ON c.IDMe = a.ID Where c.IDMe =@ID"
    
    	Dim conecao As New SqlConnection()
    	conecao.ConnectionString = "Data Source=LEVI-PC\SQLEXPRESS;Initial Catalog=Teste_One;Integrated Security=True"
    
    	Dim tabela As DataTable = Nothing
    	Try
    
    
    		Using conecao
    			Dim comandos As New SqlCommand()
    			comandos.CommandText = sql
    			comandos.CommandType = System.Data.CommandType.Text
    			comandos.Connection = conecao
    			comandos.Parameters.AddWithValue("@ID", textBox1.Text)
    			Dim adapter As New SqlDataAdapter()
    			adapter.SelectCommand = comandos
    			tabela = New DataTable()
    			adapter.Fill(tabela)
    
    			Me.dataGridView2.DataSource = tabela
    		End Using
    
    	Catch ex As Exception
    		ex.Message.ToString()
    	End Try
    
    End Sub


    http://malange-levi.blogspot.co.uk/

    domingo, 28 de outubro de 2012 20:46
    Moderador