C sharp - conexion a base de datos en c#

 
Vista:

conexion a base de datos en c#

Publicado por igonfil (4 intervenciones) el 23/01/2009 11:56:12
Hola a tod@s. Tengo creada una conexión a una base de datos Sql Server en c# y quisiera introducir el contenido de la base de datos en un label, lo que me sucede que me da una serie de errores, si me podéis ayudar a solucionarlo os lo agradecería. Muchas Gracias
Un Saludo.

Error1: No se puede convertir el grupo de métodos 'ExecuteReader' en tipo no delegado 'System.Data.SqlClient.SqlDataReader'. ¿Intentó invocar el método?
Error2: No se puede convertir el grupo de métodos 'Read' en tipo no delegado 'bool'. ¿Intentó invocar el método?
Error3 '_Default.dr' es 'campo' pero se utiliza como 'método'

El codigo que tengo es:

using System;
using System.Data;
using System.Configuration;
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.SqlClient;
using System.Data.Sql;

public partial class _Default : System.Web.UI.Page
{
private SqlConnection con;
private SqlCommand cmd;
private SqlDataReader dr;

protected void Page_Load(object sender, EventArgs e)
{
con = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString);
cmd = new SqlCommand();
cmd.CommandType = CommandType.Text;
con.Open();
cmd.Connection = con;
cmd.CommandText = "select id, noticias from Noticias";
dr = cmd.ExecuteReader;
while (dr.Read)
{
Label1.Text = dr("Noticias");
}

dr.Close();
con.Close();
}
}

El web.config:

<connectionStrings>
<add name="connectionString" connectionString="server=MiIP ; uid=sa;pwd=pass;database=Maniotas;"
providerName="System.Data.SqlClient"/>
</connectionStrings>
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:conexion a base de datos en c#

Publicado por roger (160 intervenciones) el 24/01/2009 02:12:36
el metodo ExecuteReader terminalo con (), asi ExecuteReader()
igualmente el metodo read()
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:conexion a base de datos en c#

Publicado por igonfil (4 intervenciones) el 24/01/2009 13:33:11
He realizado las modificaciones que me comentaste pero sigue dado error. Muchas gracias.
Error1: '_Default.dr' es 'campo' pero se utiliza como 'método'

El código:
dr = cmd.ExecuteReader();
while (dr.Read())
{
Label1.Text = dr("Noticias");
}
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:conexion a base de datos en c#

Publicado por roger (160 intervenciones) el 24/01/2009 22:39:39
la referencia que haces al campo debe ser entre corchete no entre parentesis, porque lo toma como metodo

dr("Noticias"); -->debe ser dr["Noticias"];
creo que dr("Noticias") es valido en visual basic, pero en c# es con corchete

espero que te sirva
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:conexion a base de datos en c#

Publicado por igonfil (4 intervenciones) el 25/01/2009 00:24:24
Muchas gracias roger, pero ahora me da otro error distinto.

Error1: No se puede convertir implícitamente el tipo 'object' en 'string'. Ya existe una conversión explícita (compruebe si le falta una conversión).

El código
while (dr.Read())
{
this.Label1.Text = dr["Noticias"] ;
}
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:conexion a base de datos en c#

Publicado por roger (160 intervenciones) el 25/01/2009 15:59:57
lo que pasa es que cuando haces esta referencia dr["Noticias"] ;
el compilador no sabe que tipo de dato es al que corresponde la columna de la tabla, lo que hace es que simplemente lo toma como tipo object, pues de el heredan todos los tipos de datos, cuando vayas a llevar el valor de una tabla de esta forma a una variable u objeto, debes realizar la conversion explicita, en tu caso seria:

dr["Noticias"] .ToString(); //asi lo pasas de object a string
//o tambien asi
Convert.ToString(dr["Noticias"] );
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:conexion a base de datos en c#

Publicado por igonfil (4 intervenciones) el 25/01/2009 18:19:36
Muchas gracias roger. Ya funciona perfectamente.
Un saludo.
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