Olá pnet,
Existem diferentes formas de vc acessar o Oracle em projetos ASP.Net. Vc pode fazer isso utilizando ADO.Net, Entity Framework, NHibernate, e outros frameworks.
Talvez o método que vc esteja procurando (de acordo com a sua descrição) seria utilizando ADO.Net. Com o ADO.Net vc pode utilizar dois providers para acessar o Oracle: ODBC e o próprio da Oracle. O ODBC já é nativo do .Net Framework, enquanto que o da Oracle
é feitos pelos caras da Oracle e esta disponível neste link:
http://www.oracle.com/technetwork/topics/dotnet/index-085163.html
Para configurar sua connection string no Web.Config, faça assim:
<connectionStrings>
<add name="OracleConnection" connectionString="... sua connection string ..."/>
</connectionStrings>
Para fazer um ponto único de acesso, pode criar uma classe Façade que encapsule seus comandos, faça algo como isto: (vou mostrar como fazer utilizando ODBC)
public class DbConnectionFacade
{
public static OdbcConnection GetConnection()
{
string connectionString = ConfigurationManager.ConnectionStrings["oracleConnection"].ConnectionString;
OdbcConnection conn = new OdbcConnection(connectionString);
return conn;
}
public static object ExecuteScalar(string commandSql)
{
object result = null;
OdbcConnection conn;
OdbcCommand command;
using (conn = GetConnection())
{
command = conn.CreateCommand();
command.CommandType = CommandType.Text;
command.CommandText = commandSql;
try
{
conn.Open();
result = command.ExecuteScalar();
}
catch (DbException ex)
{
throw ex;
}
finally
{
conn.Close();
}
}
return result;
}
public static int ExecuteNonQuery(string commandSql)
{
int result = 0;
OdbcConnection conn;
OdbcCommand command;
using (conn = GetConnection())
{
command = conn.CreateCommand();
command.CommandType = CommandType.Text;
command.CommandText = commandSql;
try
{
conn.Open();
result = command.ExecuteNonQuery();
}
catch (DbException ex)
{
throw ex;
}
finally
{
conn.Close();
}
}
return result;
}
}
E sempre que vc precisar executar algum tipo de comando, bastará vc fazer o seguinte:
int result = DbConnectionFacade.ExecuteNonQuery("Insert Into Tabela ...");
Acredito que este código lhe ajude a atingir seu objetivo. Pois vc irá concentrar todos os seus comandos em uma única classe que irá padronizar e gerenciar todos seus acessos a base de dados.
[]s!
Fernando Henrique Inocêncio Borba Ferreira
while(alive){ this.WriteCode(); }
Blog: http://ferhenriquef.com/
Twitter: @ferhenrique