Recuperar valor de um SqlDataReader

19/02/2009

0

Bom dia pessoal,

sou novo nesse fórum e gostaria de contar com a colaboração de vocês. Estou desenvolvendo uma aplicacação web utilizando visual stúdio 2008, c# e banco de dados sqlServer. Preciso fazer o seguinte:

Tenho uma tabela chamada Tema que possui apenas 1 campo (´TemaSelecionado´) e apenas 1 registro (´Azul por exemplo´).
Preciso recuperar esse dado e atribuí-lo a uma variável do tipo string.
Já tentei várias coisas, mas nada rolou.
Posto abaixo o código que criei tentando resolver tal empasse.
Agradeço imensamente quem puder me ajudar.

Segue classe
.....
using System.Data.SqlClient;

public class Tema
{
String myConnection = ConfigurationManager.ConnectionStrings["csDados"].ConnectionString;

public Tema()
{
//
// TODO: Add constructor logic here
// Construtor em branco
//
}

public string retornaTema()
{
try
{
String temaBD;

String sql = "SELECT * FROM Tema";
SqlConnection conn = new SqlConnection(myConnection);
SqlCommand cmd = new SqlCommand(sql, conn);

//Abre conexão
conn.Open();

//Lê os dados
SqlDataReader reader = cmd.ExecuteReader();

//PEGAR O VALOR DA TABELA QUE POSSUI APENAS 1 DADO (POSIÇÃO [0 , 0])
//E ATRIBUIR ESSE VALOR A STRING
temaBD = reader.

//Fecha o reader
reader.Close();

//Fecha conexão
conn.Close();

//Retorna o nome do tema
return temaBD;
}
catch (Exception ex)
{
return null;
}
}
return temaBD;
}


Agradeço a colaboração de todos e me coloco a disposição em ajudar.
Obrigado.[color=darkblue:d02186c235][/color:d02186c235]


Ramweb

Ramweb

Responder

Posts

04/03/2009

Rafael Cabral

Olá. Tudo bem?

Faltou vc executar o método Read do DataReader.

//Lê os dados 
SqlDataReader reader = cmd.ExecuteReader(); 

if (reader.Read())
   temaBD = reader["CAMPO"];

reader.Close(); 



Atenciosamente,

Rafael Cabral


Responder

04/03/2009

Rafael Cabral

Outra coisa. Se o resultado de uma consulta tiver apenas um campo com um registro, vc pode utilizar o método ExecuteScalar. Esse método retorna o valor do primeiro registro do primeiro campo da consulta.

SqlConnection sqlConn = new SqlConnection("STRING_CONEXAO");
SqlCommand sqlCmd = sqlConn.CreateCommand();
sqlCmd.CommandText = "SELECT CAMPO FROM TABELA WHERE ID = 1";

sqlConn.Open();
string campo = (string) sqlCmd.ExecuteScalar();
sqlConn.Close();


Como o ExecuteScalar retorna object, é necessário vc fazer um casting para atribuí-lo a uma variável.

Atenciosamente,

Rafael Cabral


Responder

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar