C sharp - C#2005 SqlDataReader SataSource

 
Vista:

C#2005 SqlDataReader SataSource

Publicado por Ronny Fretel (7 intervenciones) el 20/12/2008 14:47:12
Hola amigos.

el proble q tengo es el siguiente quiero llenar un listbox o combo box con datos q obtengo de un sqldatareader el problema es q no me acepta

la idea es esta

sqlconnection SQLcon = sqlconnection("datos para conexion"); //esta parte funciona normal
sqlcommand sql = new sqlcommand("sql string",SQLcon);
sqldatareader resultados = sql.executereader();

listbox.datasource = resultado;

Segun la logica y la teoria eso deberia bastar pero en algunos foros vi q despues de eso le ponen:

listbox.databind();

pero no logor encontrar en c#2005 por el contrario hay otro q es propiedad

listbox.databinding

no se si eso tenga algo q ver para llenar mi listbox espero puedan ayudarme o si hay algo mas q se pueda hacer lo haria con dataset pero tengo q armarlo por codigo ya q debo hacer algunas excepcines uso sql server 2005 y visual c# 2005 gracias

gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de roger

RE:C#2005 SqlDataReader SataSource

Publicado por roger (160 intervenciones) el 20/12/2008 23:50:56
no creo que asignandole el sqldatareader te funcione, el sqldatareader es para el trabajo conectado y te permite recorrer los registros uno por uno. Para llenar los datos en un grid,listbox,combobox,etc. normalmente se utilizan los datasets o datatables que son objetos que almacenan estructuras completas de base de datos. seria mas o menos asi:

sqlconnection SQLcon = sqlconnection("datos para conexion"); //esta parte funciona normal
sqlcommand sql = new sqlcommand("sql string",SQLcon);
sqlDataAdapter objDataAdapter = new sqlDataAdapter(sql);//le mandas el comando al constructor
Dataset datos = new Dataset();
objDataAdapter.fill(datos);//ejecuta el comando y almacena el resultado en un dataset

listbox.datasource = datos;

espero te sirva y si tienes alguna duda me comentas
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:C#2005 SqlDataReader SataSource

Publicado por Ronny Fretel (7 intervenciones) el 21/12/2008 04:23:54
Hola muchas gracias por la respuesta rapida

estube probando y arme el codigo como incas pero no tengo resultado mi datagrid en este caso sigue vacio

este es el codigo

if (SQLConn.State == ConnectionState.Open) SQLConn.Close();
SQLConn.Open();
SQL = "select * from citas";
SqlCommand SQLAd = new SqlCommand(SQL, SQLConn);
SqlDataAdapter SQLData = new SqlDataAdapter(SQLAd);
DataSet miDataSet = new DataSet();
SQLData.Fill(miDataSet);
dataGridView1.DataSource = miDataSet;

o esq me falta agregar algo??
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de roger

RE:C#2005 SqlDataReader SataSource

Publicado por roger (160 intervenciones) el 22/12/2008 02:05:14
verifica (depurando) si se esta ejecutando correctamente el codigo, la conexion, si el dataset tiene datos cargados, (verifica la consulta, que si este devolviendo registros)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:C#2005 SqlDataReader SataSource

Publicado por Ronny Fretel (7 intervenciones) el 22/12/2008 22:35:58
Hola amigo ya lo solucione usando datadapter y datatable

public DataTable LennarDS(string SQL)
{
if (miSQLCon.State == ConnectionState.Open) miSQLCon.Close();
miSQLCon.Open();
SqlCommand miSQL = new SqlCommand(SQL, miSQLCon);
SqlDataAdapter miSQLDA = new SqlDataAdapter(miSQL);
DataTable miDataTable = new DataTable();
miDataTable.Locale = System.Globalization.CultureInfo.InvariantCulture;
miSQLDA.Fill(miDataTable);
return miDataTable;
miSQLCon.Close();
}

donde el datgridview esta enlazado con el datasource

dataviewgrid.datasource = LlenarDS("select * from tabla");

con datareader parece q no devuelve informacion en bloque sino q solo sirve para recorrer datos de la asbe de datos y siempre con un while

Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar