我有这个代码:
OracleConnection con = new OracleConnection("data source=localhost;user id=fastecit;password=fastecit"); con.Open(); string sql="Select userId from tblusers"; OracleCommand cmd = new OracleCommand(sql, con); OracleDataReader dr = cmd.ExecuteReader(); while (dr.Read()) { messageBox.Show(dr[0].Tostring()); }
两个项目中的代码相同,
在project1"WinForm"工作正常
在project2"Excel 2007插件"出现以下错误:
ORA-12154:TNS:无法解析指定的连接标识符
我正在使用C#.net 2010,office 2007,windows8,oracle 10g.
准备手动连接数据库时,如图所示
Visual Studio,打开View菜单+ Server Explorer.
右键单击数据连接+添加连接+选择Oracle数据库服务器名称:localhost或我的机器名称,设置用户名和密码,然后单击测试连接,测试没有成功.
数据库必须有一个名称(例如DB1),试试这个:
OracleConnection con = new OracleConnection("data source=DB1;user id=fastecit;password=fastecit");
如果未定义TNS,您也可以尝试以下方法:
OracleConnection con = new OracleConnection("Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=DB1))); User Id=fastecit;Password=fastecit");
ORA-12154:TNS:无法解析指定的连接标识符?
如果未定义TNS,您也可以尝试以下方法:
如果您正在使用C#.net 2010
或其他版本的VS和oracle 10g快速版或更低版本,并且您创建了这样的连接字符串:
static string constr = @"Data Source=(DESCRIPTION= (ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=yourhostname )(PORT=1521))) (CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=XE))); User Id=system ;Password=yourpasswrd";
之后您会收到错误消息,ORA-12154: TNS:could not resolve the connect identifier specified
然后首先必须重新启动系统并运行项目.
如果您的Windows是64位,那么您安装oracle 11g 32位,如果您安装11g 64位,那么您使用Oracle开发人员工具从Visual Studio版本11.2.0.1.2或更高版本安装Oracle 11g Oracle数据访问组件(ODAC)并在Oracle Universal Installer中检查它请确保选中以下内容:
Oracle Data Provider for .NET 2.0 Oracle Providers for ASP.NET Oracle Developer Tools for Visual Studio Oracle Instant Client
并重新启动你的vs然后运行你的项目....注意: - 系统重新启动是必要的解决这种类型的错误.......