Estoy tomando 2 variables de la tabla SQL 'Zupanije', pero no sé cómo usarlas. Probé el siguiente código, pero toma la clave dos veces, en lugar de la clave y el valor.

sqlCmd.CommandText = "SELECT COUNT(*) From Zupanije";
conn.Open();
int count = (int)sqlCmd.ExecuteScalar();
conn.Close();

sqlCmd.CommandText = "SELECT Naziv, Sifra From Zupanije";
conn.Open();
using (var zupanijeReader = sqlCmd.ExecuteReader())
{
    while (zupanijeReader.Read())
    {
        for (int i=0; i <= count; i++)
        { 
            izborZupanija.Add(zupanijeReader[i].ToString(), 
                              Convert.ToDouble(zupanijeReader[i]));
        }
    }
}
conn.Close();
0
L. Havrlisan 21 jul. 2016 a las 14:07

2 respuestas

La mejor respuesta

Estoy de acuerdo con @leetibbett. El SqlDataReader iterará sobre cada resultado cuando llame a Read (). Luego, extrae el valor de cada columna utilizando los métodos SqlDataReader.GetString y SqlDataReader.GetDouble, pasando el índice de la columna como argumento.

sqlCmd.CommandText = "SELECT Naziv, Sifra From Zupanije";
conn.Open();
using (var zupanijeReader = sqlCmd.ExecuteReader())
{
    while (zupanijeReader.Read())
    {
        izborZupanija.Add(zupanijeReader.GetString(0), zupanijeReader.GetDouble(1));
    }
}
conn.Close();
0
gsd 21 jul. 2016 a las 11:40

El lector expone una matriz de columnas a través de su indexador. Está eligiendo la misma columna dos veces usando la variable i. Debe usar los métodos auxiliares en el lector para extraer los valores, es decir, reader.GetString(0) y reader.GetDouble(1) si los tipos de datos ya son correctos en la base de datos.

0
leetibbett 21 jul. 2016 a las 11:15