我正在尝试从我的网站(asp.net-mvc)连接到oracle数据库。 我必须连接到数据库的唯一信息是ODBC指令,该指令告诉我:
它说进入机器上的oracle目录,并将其输入到TSNNames.ora文件中,并在以下位置输入:
DBNAME=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=[machine])(port=[port]))
(CONNECT_DATA=(SID=[DBNAME])))
然后转到控制面板,然后通过GUI向导手动添加连接。
无论如何,我无需设置即可连接到该数据库? 我希望只是插入一个连接字符串并继续前进。 我部署到不同的计算机,并且我不希望不得不更新.ora文件或浏览此GUI向导设置。
有人对我有建议吗?
注意:SID = DBNAME,而不是您的用户名。
不要使用ODBC。 ODP.NET是Oracle提供的驱动程序,它基于与SQL Server相同的模型:只需下载程序集,在项目中引用它并使用它:
using (var conn = new OracleConnection("Some connection string"))
using (var cmd = conn.CreateCommand())
{
conn.Open();
cmd.CommandText ="SELECT id FROM foo";
using (var reader = cmd.ExecuteReader())
{
while (reader.Read())
{
int id = reader.GetInt32(0);
}
}
}
有关分发所需的最少库集的详细信息,请参见此stackoverflow。
根据一个类似的问题,在Asp.net MVC中手动连接到数据库,这没有任何魔术。只需像通常那样连接到数据库即可。
有一个VB示例@ http://www.aspdev.org/articles/asp.net-mysql-connect/用于MySql,但应该足够简单才能切换到Oracle连接字符串。
有人可以解释一下反对意见吗? 我误会了这个问题吗?
我认为这是一个足够公平的答案
投票以弥补不合理的投票。
至少有一个针对Oracle的ado.net提供程序,该提供程序不需要计算机上的Oracle客户端。请参阅http://www.devart.com/dotconnect/oracle/。 Devart将此功能称为"直接模式"。该特定于Oracle的提供程序的性能也可能会比odbc提供程序好得多。
但是有什么我不明白的吗?您已经构建了一个asp.net mvc应用程序,因此只需安装在服务器上即可。那是什么问题呢?