Posts
Ola Angelo seja bem vindo.
Surigo vc fazer um Formulario windows contendo duas GridViews, do qual cada uma sera populada com os dados de suas duas tabelas.
UmM botão "Comparar" que fará a rotina de comparação, já que vc tera dois DataTables que serão seus DataSources para popular as grids.
Passos:
Fara um loop que compara os id
Caso sejam iguais, compare tb os outros campos
Caso sejam diferentes, faça um INSERT na terceira tabela
Depois da rotina finalizada, vc exibe outra GridgView com estes dados
Caso não tenha entendido algo, por favor me comunique que posso mandar um pequeno exemplo pra vc.
Abraços
Att
Luiz Maia
Bom dia gostaria sim de receber um exemplo se puder enviar fico agradecido
Ola Angelo,
Vc tera que construir um Formulario tipo este abaixo, onde serão exibidos os dados das duas tabelas:
No evento click do botão "comparar", fiz uma estrutura para te dar um caminho, um algoritmo. Dai vc modifica como quiser. Segue abaixo:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace TesteDevMedia
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
DataTable dt1 = new DataTable();
DataTable dt2 = new DataTable();
foreach (DataRow dr1 in dt1)
{
int codigo1 = Convert.ToInt32(dr1["CODIGO"]);
int valor1 = Convert.ToInt32(dr1["CREDITO"]) - Convert.ToInt32(dr1["DEBITO"]);
foreach (DataRow dr2 in dt2)
{
int codigo2 = Convert.ToInt32(dr2["CODIGO"]);
int valor2 = Convert.ToInt32(dr2["CREDITO"]) - Convert.ToInt32(dr2["DEBITO"]);
if (codigo1 == codigo2)
{
if (valor1 != valor2)
{
// insere os dados na tabela 3 aqui
}
}
}
}
}
}
}
Caso não entenda algo, me avise ok?
Estou aguardando seu feedback.
Abraços
Luiz Maia
Oi entendi sim na verdade até ai eu tinha conseguido minha dúvida é o seguinte:
Tenho uma tabela com mais ou menos 6 mil dados, quero fazer essa rotina em cada item e preecher uma nova tabela como te passei. Minha dúvida é como fazer um loop para que o sistema venha a fazer isso nós 6 mil itens e preecha a tabela 3 com todos os itens de uma só vez.
Se puder me passar o código completo inclusive com a a inserção eu agradeço.
Muito obrigado pela sua atenção
Angelo,
O objetivo da consultoria é esclarecer as dúvidas, a gente até coloca trechos de código para facilitar o entendimento, mas não posso desenvolver a rotina para você. Não posso fazer a codificação como quer.
Nos apenas resolvemos problemas, dúvidas e orientamos para que os solicitantes tenham um caminho a traçar. Desculpe.
Abraços
Att
Luiz Maia
Ok mandarei a rotina para que você escrareça a dúvida ok.
Ok Angelo, estou aguardando.
Abraços
Att
Luiz Maia
E ai Angelo?
Estou aguardando sua dúvida, ok?
Abraços
Att
Luiz Maia
Oi obrigado pela atenção mandarei a dúvida hoje, e deste agradeço é que estou aprendendo ainda rss.
Ok, estou aguardando.
Abraços.
Att
Luiz Maia
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Data.OleDb;
namespace WindowsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
string connectString = "Provider=Microsoft.Jet.OLEDB.4.0;"
+ "Data Source=C:\\db1.mdb";
// conexão com banco de dados
OleDbConnection cn = new OleDbConnection(connectString);
cn.Open();
// preciso de uma conexão com as tabelas do banco de dados
// que as varáveis recebam os valores contidos no banco de dados
string codigo = ("codigo");
string credito = ("credito");
string debito = ("debito");
}
}
}
Vou mandar parte por parte de onde tenho dúvidas espero não serem tolas demais, prometo assistir todos oso vidéos que tenho direito assim terei menos dúvidas
Angelo,
De uma olada neste artigo, ele esclarece esta parte:
https://www.devmedia.com.br/articles/viewcomp.asp?comp=5769&hl=
Mas seria isto:
//definir a string SQL
string sql = "SELECT * FROM tabcarros";
// definir conexão
OleDbConnection con = new OleDbConnection ("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\Documents and Settings\\administrador\\Desktop\\1 aula c#\\Carros.mdb;Persist Security Info=False");
//abrir a conexão
con.Open();
//criar o data DataAdapter e executar a consulta
OleDbDataAdapter ad = new OleDbDataAdapter(sql,con);
//criar o DataSet
DataSet ds = new DataSet();
//Preencher o dataset com o data DataAdapter
ad.Fill(ds);
//DataView dv = new DataView(ds.Tables[0]);
//ligando dataset ao controle asp.net
DataGrid1.DataSource= ds.Tables[0];//dv;
// visualizando dados no controle
DataGrid1.DataBind();
//liberando objetos
con.Dispose();
ad.Dispose();
ds.Dispose();
Pode usar tb um DataTable:
DataTable dt = ds.Tables[0];
string valor1 = dt["credito"].[0].ToString();
Aguardo seu retorno.
Att
Luiz Maia
oi professor bom dia, muito legal seu arquivo muitas dúvidas, foram tiradas com ele e funcionou, mas não gostaria de ter todos os campos exibido queria seleciona-los alguns na verdade 3 boleto,credite e debite.
E gostaria de exibir duas tabelas tentei deu erro.
Outra coisa testei em uma tabela com 1404 ele não exibiu todos só exibio 1385 como resolvo isso
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.OleDb;
namespace WebApplication2
{
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
// defini a string sql
string sql = "Select * From CREDITE";
OleDbConnection con = new OleDbConnection ("Provider=Microsoft.Jet.OLEDB.4.0;"
+ "Data Source=C:\\db1.mdb");
// abre conexão
con.Open();
// cria data dataadapter e executa consuta
OleDbDataAdapter ad = new OleDbDataAdapter(sql , con);
// criar dara set
DataSet ds = new DataSet();
// preeche o data set com data dataatapter
ad.Fill(ds);
// data view dv new dataviews(dsTables[0[//)
//DataView dv = DataView(ds.Tables[0]);
//ligando dataset ao controle asp.net
DataGrid1.DataSource = ds.Tables[0];//dv;
DataGrid1.DataBind();
con.Dispose();
ad.Dispose();
ds.Dispose();
}
}
}
para criar outra tabela pensei que fosse só seguir esses passos eles teriam que exibir no mesmo lugar
Olá Angelo,
Para filtrar os campos que quer na sua consulta, basta informa-los explicitamente na query, tipo assim:
string sql = "Select boleto, credite, debite From CREDITE";
Para exibir dados de duas tabelas vc deve fazer um relarionamento entre ambas, usando JOIN.
Para tanto vc precisa verificar se a tabela filho é obrigatoria ter dados relacionados com a pai, ai vc deve usar o INNER JOIN, caso contrario pode usar o LEFT JOINN.
Por exemplo, vc tem duas tabelas, Categoria e Produto, mas pode haver casos que vc so tem a categoria e ainda nao tem produtos para ela, mas com certeza todos produtos tem uma categoria.
Pode ser por este motivo seus registros não estão retornando todos.
Entao se quiser buscar os produtos com a descrição da categoria, segue exemplo:
select
p.nom_produto,
p.valor_produto,
c.nom_categoria
from
produto p INNER JOIN categoria c on c.cod_categoria = p.cod_produto.
Abraços
Att
Luiz Maia