PEGAR DATA DO SERVIDOR
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[Ô])
Rs.Open [Ô] select getdate() , @@SERVERNAME AS WSERVER [Ô], Cnn, adOpenForwardOnly, adLockReadOnly
datasis = Format(Rs.Fields(0), [Ô]DD/MM/YYYY[Ô])
do mesmo jeito, só que usando ado.net
Acho que seria né ??.. postei aqui porque não consegui, manda o exemplo ai...rss.
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();
}
}
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();
}
}
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,
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,
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
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
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