CONVERTER UM READER URGENTE
using System.Data.SqlClient;
Então pensei quele ele fosse uma classe genérica...
O mesmo vale para outros objetos, por exemplo você tem as interfaces IDbConnection, IDbCommand, IDbDataAdapter, entre outros.
Edit: só completando aqui, vi também que geralmente os providers implementam a classe herdando de um outro objeto, o System.Data.Common.DbDataReader, que também pode ser usado para isso.
Citação::
Não existe um que seja global, geralmente cada provider do ADO.Net tem o seus próprios objetos, porém eles implementam interfaces que podem ser usadas para tornar o código mais genérico, por exemplo no caso do SqlDataReader (ou MySqlDataReader, ou qualquer outro) se tem a interface IDataReader que pode ser passada para funções que precisam apenas de um DataReader, independente do banco de dados.
O mesmo vale para outros objetos, por exemplo você tem as interfaces IDbConnection, IDbCommand, IDbDataAdapter, entre outros.
Edit: só completando aqui, vi também que geralmente os providers implementam a classe herdando de um outro objeto, o System.Data.Common.DbDataReader, que também pode ser usado para isso.
Funcionou corretamente com as Interface IDataReader, mas para isso tive que utilizar a referencia using System.Data; esse data é nativa do próprio Windows correto? OCELOT, obrigado pela ajuda.. Mais uma dúvida rápida, o uso dos USING no lugar de declarar classe nome = new classe(); da algum tipo de performance no sistema? Tem alguma diferença em performance as duas formas ou é apenas uma maneira mais [ô]elegante[ô] de programa usando using?
Citação::
O using, é um bloco que ao ser finalizado, efetua o Close e Dispose do objeto instanciado, liberando o mesmo para o GAC. Não existe isso de [Ô]mais elegante[Ô], existe maneira mais correta ou menos correta. No caso do using, não corre o perigo de esquecer de dar o Dispose no objeto.
Só corrigindo um pequeno erro de digitação acredito eu, não é GAC e sim GC
E quanto ao System.Data, este namespace é do próprio .Net framework, do assembly System.Data.dll que provavelmente você já tinha referenciado no seu projeto já que pra qualquer acesso a banco de dados acredito que ele seja necessário.
Quanto ao using fazer isso
using(classeQualquer c = new classeQualquer())
{
//codigo usando a variavel c aqui
}
seria mais ou menos o equivalente a fazer isso
classeQualquer c = new classeQualquer();
try
{
//codigo usando a variavel c aqui
}
finally
{
if (c != null)
c.Dispose();
}
Então pode usar sem problemas, é até bom usar ele quando o objeto implementar a interface IDisposable e o uso dele vai ser só ali naquele trecho de código