Usuário com melhor resposta
Como Passar um DataTable para outro form .

Pergunta
-
Respostas
-
Boa noite,
Existe várias formas de fazer isso, segue algumas opções:
1 - Você poderia cria um construtor "ou mesmo alterar o existente" no form2 que receberia o DataTable:
public Form2(DataTable datatable) { InitializeComponent(); }
Assim quando quiser chamar o Form2, no Form1 você faria assim:
DataTable table = new DataTable(); //Table preenchida new Form2(table).Show();
2 - Outra forma de fazer isso é com classe "static". Crie uma classe:
public static class DataTableForm { public static DataTable DataTable { get; set; } }
No Form1 você atribuiria o DataTable:
DataTable table = new DataTable(); //Table preenchida DataTableForm.DataTable = table;
No Form2 você poderia obter o DataTable assim:
DataTable table = DataTableForm.DataTable;
3 - A terceira opção, sua classe e seu método deixaria de ser "static" e você passaria o objeto por parmetro.
Espero ter ajudado.
Att,
Se a resposta contribuiu com seu aprendizado por favor marque como util, se solucionou seu problema marque como resposta.
- Sugerido como Resposta Silvaney terça-feira, 26 de abril de 2016 02:31
- Marcado como Resposta fabio_costa0311 terça-feira, 26 de abril de 2016 03:51
-
Renomei atributo DataTable dentro da classe:
namespace TCCe { public static class ClassFiEntra { public static DataTable DataTableForm { get; set; } } }
Se a resposta contribuiu com seu aprendizado por favor marque como util, se solucionou seu problema marque como resposta.
- Marcado como Resposta Levi DomingosModerator terça-feira, 26 de abril de 2016 19:09
Todas as Respostas
-
Boa noite,
Existe várias formas de fazer isso, segue algumas opções:
1 - Você poderia cria um construtor "ou mesmo alterar o existente" no form2 que receberia o DataTable:
public Form2(DataTable datatable) { InitializeComponent(); }
Assim quando quiser chamar o Form2, no Form1 você faria assim:
DataTable table = new DataTable(); //Table preenchida new Form2(table).Show();
2 - Outra forma de fazer isso é com classe "static". Crie uma classe:
public static class DataTableForm { public static DataTable DataTable { get; set; } }
No Form1 você atribuiria o DataTable:
DataTable table = new DataTable(); //Table preenchida DataTableForm.DataTable = table;
No Form2 você poderia obter o DataTable assim:
DataTable table = DataTableForm.DataTable;
3 - A terceira opção, sua classe e seu método deixaria de ser "static" e você passaria o objeto por parmetro.
Espero ter ajudado.
Att,
Se a resposta contribuiu com seu aprendizado por favor marque como util, se solucionou seu problema marque como resposta.
- Sugerido como Resposta Silvaney terça-feira, 26 de abril de 2016 02:31
- Marcado como Resposta fabio_costa0311 terça-feira, 26 de abril de 2016 03:51
-
Oi Silvaney.
Eu ja tenho um datatable com as colunas e tipos da dados etc. preenchido.
Posso simplesmente criar uma classe
namespace TCCe
{
class ClassFiEntra
{
public static class DataTableForm
{
public static DataTable DataTable { get; set; }
}
}
}e no form1 com o chamar a classe
ClassFiEntra DTE = new ClassFiEntra ();
e passar meu datatable preenchido assim.
DTE.DataTAble = DT;
-
Se quiser fazer com a classe "static" você não precisa instanciar:
namespace TCCe { public static class ClassFiEntra { public static DataTable DataTable { get; set; } } }
Para passar seu DataTable preenchido você não precisa instanciar ou seja dar "new". Basta fazer assim:
ClassFiEntra.DataTable = DT;
Agora para obter seu DataTable lá no Form2 é da mesma forma, sem precisar instanciar:
DataTable dataTableForm2 = ClassFiEntra.DataTable;
Att,
Se a resposta contribuiu com seu aprendizado por favor marque como util, se solucionou seu problema marque como resposta.
-
-
-
Renomei atributo DataTable dentro da classe:
namespace TCCe { public static class ClassFiEntra { public static DataTable DataTableForm { get; set; } } }
Se a resposta contribuiu com seu aprendizado por favor marque como util, se solucionou seu problema marque como resposta.
- Marcado como Resposta Levi DomingosModerator terça-feira, 26 de abril de 2016 19:09
-