Usuário com melhor resposta
Método para preencher vetor com registros de tabelas

Pergunta
-
Boa tarde!
Tenho uma tabela com registros que preciso armazenar temporariamente em um vetor. Fiz os códigos:
[code]
public int[] preencheVetorApostas(string concurso)
{
int[] apostas = new int[50];
for (int i = 0; i < 50; i++)
{
string queryString = "SELECT " +
"n01, n02, n03, n04, n05, n06, n07, n08, n09, n10, n11, n12, n13, n14, n15, n16, n17, n18, n19, n20, " +
"n21, n22, n23, n24, n25, n26, n27, n28, n29, n30, n31, n32, n33, n34, n35, n36, n37, n38, n39, n40, " +
"n41, n42, n43, n44, n45, n46, n47, n48, n49, n50 FROM apostas WHERE concurso=" + concurso;
using (OleDbConnection connection = new OleDbConnection(strConexao()))
{
OleDbCommand command = new OleDbCommand(queryString, connection);
connection.Open();
apostas[i] = command.ExecuteNonQuery();
}
}
Connection.Dispose();
return apostas;
}[/code]
O método acima não está voltando os valores corretos do vetor, apenas zeros.
Peço a ajuda de vocês.
Respostas
-
O que voce quer fazer? Colocar cada n (n01, n02, n03) em cada aposta?
Primeiramente ExecuteNonQuery sempre vai retornar zero, pois select (de forma usual) nao altera registros. O comando ExecuteNonQuery serve para executar comandos como o delete,update, insert e o retorno indica quantos registros foram alterados( deletados, atualizados ou inseridos)
Segundo, voce executa a mesma query 50 vezes sem necessidade, pois o criterio é sempre o mesmo.
Terceiro, voce precisa criar um dataset ou usar o reader para que isso funcione.
O codigo que eu sugiro é este:
public int[] preencheVetorApostas(string concurso) { int[] apostas = new int[50]; string queryString = "SELECT " + "n01, n02, n03, n04, n05, n06, n07, n08, n09, n10, n11, n12, n13, n14, n15, n16, n17, n18, n19, n20, " + "n21, n22, n23, n24, n25, n26, n27, n28, n29, n30, n31, n32, n33, n34, n35, n36, n37, n38, n39, n40, " + "n41, n42, n43, n44, n45, n46, n47, n48, n49, n50 FROM apostas WHERE concurso=" + concurso; using (OleDbConnection connection = new OleDbConnection(strConexao())) { OleDbCommand command = new OleDbCommand(queryString, connection); connection.Open(); OleDbDataReader reader = command.ExecuteReader(); while (reader.Read()) { for (int i = 0; i < 50; i++) { apostas[i] = reader.GetInt32(i); } } } Connection.Dispose(); return apostas; }
att
William John Adam Trindade
Analyste-programmeur
----------------------------------------------------------
- Marcado como Resposta Junior_bits quarta-feira, 22 de fevereiro de 2017 18:08
- Editado William John Adam TrindadeModerator quarta-feira, 22 de fevereiro de 2017 18:11
Todas as Respostas
-
O que voce quer fazer? Colocar cada n (n01, n02, n03) em cada aposta?
Primeiramente ExecuteNonQuery sempre vai retornar zero, pois select (de forma usual) nao altera registros. O comando ExecuteNonQuery serve para executar comandos como o delete,update, insert e o retorno indica quantos registros foram alterados( deletados, atualizados ou inseridos)
Segundo, voce executa a mesma query 50 vezes sem necessidade, pois o criterio é sempre o mesmo.
Terceiro, voce precisa criar um dataset ou usar o reader para que isso funcione.
O codigo que eu sugiro é este:
public int[] preencheVetorApostas(string concurso) { int[] apostas = new int[50]; string queryString = "SELECT " + "n01, n02, n03, n04, n05, n06, n07, n08, n09, n10, n11, n12, n13, n14, n15, n16, n17, n18, n19, n20, " + "n21, n22, n23, n24, n25, n26, n27, n28, n29, n30, n31, n32, n33, n34, n35, n36, n37, n38, n39, n40, " + "n41, n42, n43, n44, n45, n46, n47, n48, n49, n50 FROM apostas WHERE concurso=" + concurso; using (OleDbConnection connection = new OleDbConnection(strConexao())) { OleDbCommand command = new OleDbCommand(queryString, connection); connection.Open(); OleDbDataReader reader = command.ExecuteReader(); while (reader.Read()) { for (int i = 0; i < 50; i++) { apostas[i] = reader.GetInt32(i); } } } Connection.Dispose(); return apostas; }
att
William John Adam Trindade
Analyste-programmeur
----------------------------------------------------------
- Marcado como Resposta Junior_bits quarta-feira, 22 de fevereiro de 2017 18:08
- Editado William John Adam TrindadeModerator quarta-feira, 22 de fevereiro de 2017 18:11
-