PEGAR DATA DO SERVIDOR

FUTURA 28/11/2017 18:29:46
#478130
Pessoal, no VB6, uso o comando abaixo para pegar a data do servidor/sql server, Como seria em vb.net com datareader ?

Rs.Open [Ô] select getdate() , @@SERVERNAME AS WSERVER [Ô], Cnn, adOpenForwardOnly, adLockReadOnly
datasis = Format(Rs.Fields(0), [Ô]DD/MM/YYYY[Ô])
CLEVERTON 28/11/2017 20:21:24
#478132
Resposta escolhida
do mesmo jeito, só que usando ado.net
FUTURA 28/11/2017 20:25:06
#478133
Acho que seria né ??.. postei aqui porque não consegui, manda o exemplo ai...rss.
CLEVERTON 28/11/2017 21:27:28
#478135
object varRetorno = null;

try
{
using (SqlConnection Conn = new SqlConnection())
{
Conn.ConnectionString = connString; // Sua conexão string
Conn.Open();

IDbCommand mycmd = dbFactory.CreateCommand();
mycmd.CommandText = [Ô]SELECT GetDate()[Ô]
mycmd.Connection = Conn;

using (IDataReader dr = mycmd.ExecuteReader())
{
while (dr.Read())
{
if (dr.IsDBNull(0))
varRetorno = null;
else
{
varRetorno = dr.GetValue(0);
}
}

dr.Close();
}

mycmd = null;
Conn.Close();
}
}
FUTURA 29/11/2017 09:36:33
#478137
Amigo, eu já uso em alguns casos o datareader, e estou fazendo da forma como vc postou, só que em vb.net, mas nesta tentativa de pagar a data, me retorna:

tentativa invalida de leitura quando não existem dados, Porém, não havia jogado dentro do while dr.read(), após colocar o while, deu certo. Nas outras consultas que faço, eu uso, pois podem retornar N registros. Uma dúvida, essa seria uma condição para uso do datareader ?

Grato,
OCELOT 29/11/2017 10:19:48
#478138
Você não precisa usar o While, mas é obrigatório chamar o Read(), neste caso se tirar o While e deixar o dr.Read() vai funcionar da mesma forma, pois só existe um registro.

Agora o ideal mesmo quando se quer apenas um campo de apenas um registro é usar o ExecuteScalar do Command, por exemplo

Using cnn As New SqlConnection([Ô]Data Source=.\SQLEXPRESS;Initial Catalog=MeuBanco;Integrated Security=SSPI[Ô])

cnn.Open()

Using cmd As New SqlCommand([Ô]SELECT GETDATE()[Ô], cnn)

Dim data As DateTime = cmd.ExecuteScalar()

Console.WriteLine(data)

End Using

cnn.Close()
End Using
FUTURA 29/11/2017 18:42:32
#478149
Muito obrigado aos dois. Desta vez vou pontuar o Cleverton que postou primeiro, mas a dica do OCELOT, foi de grande ajuda tbm.
Tópico encerrado , respostas não são mais permitidas