资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

vs怎么链接oracle vs2013链接器在哪

vs2022如何连接oracle

vs2022如何连接oracle的解决方法如下:

创新互联公司主营湖里网站建设的网络公司,主营网站建设方案,app开发定制,湖里h5成都小程序开发搭建,湖里网站营销推广欢迎湖里等地区企业咨询

本机环境:64位win7,安装了64位的oracle桌面类

服务器环境:64位windows server 2008,64位oracle服务器端

问题:本机用sql developer连数据库没有问题,winform程序连接也没有问题,但是web程序连接oracle失败,报错:“尝试加载 Oracle 客户端库时引发 BadImageFormatException。如果在安装 32 位 Oracle 客户端组件的情况下以 64 位模式运行,将出现此问题。“

解决过程:在网上查找原因,说是因为VS的webDe.webServer.exe 是一个32位的进程,所以连不上64位数据库,解决方法提了很多,包括把项目的属性里的生成选项里的目标平台:改为x86,web项里的服务器改成iis不使用vs自带的web deleloper ment 服务,修改path环境变量等,但是都没管用。

最终的解决办法:安装32位oracle客户端(win32_11gR2_client.zip),但是这样一来winform程序又连不上数据库了,得把winform程序的项目属性里生成选项的目标平台改成x86,这样就都行了。

在vs2010中使用c# 连接oracle 11g

在vs2010中使用c# 连接oracle 11g:

一. 在VS2010中连接 Oracle数据库有两种方法:

第一种:微软提供的连接方法 : using System.Data.OracleClient;

第二种:Oracle自己提供的方法:using Oracle.DataAccess.Client;

连接字符串:

connectionString="Password=czh;User ID=czh;Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=XXX.XXX.XXX.XXX)(PORT=1521)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=skydream)));"

1. 微软提供的连接方法 : using System.Data.OracleClient;

测试例程:

··1.在VS2010新建控制台应用程序(C#);

··2.右键、引用,在.NET中选择System.Data.OracleClient;

··3.在程序中 using System.Data.OracleClient;

using System;  

using System.Collections.Generic;  

using System.Linq;  

using System.Text;  

using System.Data.OracleClient;  

namespace ConsoleApplication2  

{  

class Program  

{  

static void Main(string[] args)  

{  

string connectionString;  

string queryString;  

connectionString = "Data Source=202.200.136.125/orcl;User ID=openlab;PassWord=open123";  

queryString = "SELECT * FROM T_USER";  

OracleConnection myConnection = new OracleConnection(connectionString);  

OracleCommand myORACCommand = myConnection.CreateCommand();  

myORACCommand.CommandText = queryString;  

myConnection.Open();  

OracleDataReader myDataReader = myORACCommand.ExecuteReader();  

myDataReader.Read();  

Console.WriteLine("email: " + myDataReader["EMAIL"]);  

myDataReader.Close();  

myConnection.Close();  

}  

}  

}

2.Oracle自己提供的方法:using Oracle.DataAccess.Client;

前提条件:安装oracle或者oracle client以及安装 Oracle Client 。

··1.在VS2010新建控制台应用程序(C#);

··2.右键、引用,在.NET/组件中选择Oracle.DataAccess.Client;如果找不到则选择 浏览,进入到oracleclient的安装目录寻找 Oracle.Data.Access.dll  (典型目录为:E:\app\Administrator\product\11.2.0\client_1\ODP.NET\bin\2.x\Oracle.DataAccess.dll)

··3.程序中添加引用:using Oracle.DataAccess.Client;

using System;  

using System.Collections.Generic;  

using System.Linq;  

using System.Text;  

using Oracle.DataAccess.Client;  

namespace testConnectionOracle  

{  

class Program  

{  

static void Main(string[] args)  

{  

string connectionString;  

string queryString;  

connectionString = "Data Source=202.200.155.123/orcl;User ID=openlab;PassWord=open123";  

queryString = "SELECT * FROM T_USER";  

OracleConnection myConnection = new OracleConnection(connectionString);  

OracleCommand myORACCommand = myConnection.CreateCommand();  

myORACCommand.CommandText = queryString;  

myConnection.Open();  

OracleDataReader myDataReader = myORACCommand.ExecuteReader();  

myDataReader.Read();  

Console.WriteLine("email: " + myDataReader["EMAIL"]);  

myDataReader.Close();  

myConnection.Close();  

}  

}  

}

visual怎么连接oracle数据库

宿主机:Win10 + VS2015 + ODP.Net for VS2015虚拟机:Win7 + Oracle 11g + 桥接

配置ODP.Net

首先下载 Oracle Developer Tools for Visual Studio 2015 ,下载此文件需要注册Oracle社区账号并接受相关的协议,此文件提供了以下组件:

Oracle Developer Tools for Visual Studio 12.1.0.2.4

Oracle Data Provider for .NET 4 12.1.0.2.0

Oracle Providers for ASP.NET 4 12.1.0.2.0

下载完成后运行MSI安装程序进行安装,安装完成后会自动注册VS2015的相关插件,重新启动VS2015后将会看到Oracle的相关命令,比如SQL *PLUS支持等。同时添加数据库时也能看到相应的选项。

ODP.Net支持所有Oracle版本,因此下载时只需要注意VS的版本即可。

配置tnsnames.ora

ODP.Net默认使用安装目录下的 tnsnames.ora ,若安装目录在Program Files下,可能会遇到无权限等问题,此时使用管理员权限打开命令行,切换到对应目录并使用notepad编辑。

复制服务器端的tnsnames.ora文件内容,或者自己手动编辑,格式如下:

数据源别名 =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = 主机名或IP)(PORT = 端口号))

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = 数据库服务名)

)

)

添加数据库

打开 工具 - 连接到数据库 ,数据源修改为 Oracle数据库 下的 ODP.NET,托管驱动程序 ,然后点击 确定 ,打开 添加连接 窗口。

填写用户名,密码并选择数据源,然后测试连接,成功的话说明已经连通,点击确定即可。

使用虚拟机搭建数据库的额外Tips

根据某网友分析,Oracle的监听器在通过1521端口连接后,会开启另外一个新的随机端口进行数据通讯,因此使用NAT方式虚拟网卡可能会导致连接失败。这种情况下,请使用桥接方式虚拟网卡,并在 net manager 中将 loaclhost 修改为虚拟机当前的IP。重启监听服务后,再试。

连接数据库并使用

连接数据库

Dim oradb As String = "User ID=system;Password=123456;Data Source=lol"

Dim conn As New OracleConnection(oradb)

conn.Open()

Dim sql As String = "create table xxx"

Dim sqlCom As New OracleCommand

sqlCom.CommandText = sql

sqlCom.Connection = conn

sqlCom.ExecuteNonQuery()

查询数据

成功配置数据源之后,只需要向界面上拖动 DataGridView ,并进行相关配置,选择自己需要的表即可。

插入图片的正确姿势

图片作为二进制数据无法直接拼凑出SQL命令,我们需要使用 OracleCommand 自带的 Parameters 功能。在SQL命令中用 :photo 来代表一个参量,然后使用

sqlCom.Parameters.Add("photo", OracleDbType.Blob, imgData.Length)

来分别指定这个参量的类型和所占空间大小

最后使用

sqlCom.Parameters(0).Value = imgData

来指定这个参量的值。

整个插入图片过程的代码如下:

Dim conn As New OracleConnection(oradb)

Dim imgData(0) As Byte

Dim ms As New System.IO.MemoryStream

PictureBox1.BackgroundImage.Save(ms, PictureBox1.BackgroundImage.RawFormat)

ReDim imgData(ms.Length - 1)

ms.Read(imgData, 0, ms.Length)

ms.Close()

conn.Open()

Dim sql As String = "insert into hero values" "(" TextBox1.Text ":photo" ")"

Dim sqlCom As New OracleCommand

sqlCom.CommandText = sql

sqlCom.Connection = conn

sqlCom.Parameters.Add("photo", OracleDbType.Blob, imgData.Length)

sqlCom.Parameters(0).Value = imgData

sqlCom.ExecuteNonQuery()

常见错误

column not allowed here

数据类型不符,检查对应项目数据类型是否正确。

missing comma

命令格式不对,检查一下自己的SQL命令是否有错误,特别是在有字符串的时候,需要使用 "" 来代表一个字符串中的 " 。

identifier is too long

标识符过长(不得超过30字符),不是非常明白原因,不过我取消掉insert命令中指定位置的部分之后,这个错误消失了。

missing INTO keyword

缺少into关键字(手滑打成了inte),检查一下自己的SQL命令是否有错误。

vs中怎样连接服务器上的oracle数据库

本地机器tnsnames.ora

ORCL =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = fuqiang)(PORT = 1521))

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = orcl)

)

)

SERVICEORCL=

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = 服务器IP)(PORT = 1521))

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = orcl)

)

)

服务器tnsnames.ora

SERVICEORCL =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = 服务器名称)(PORT = 1521))

)

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = orcl)

)

)

VS中连接代码:

C# code

OracleConnection oracleConnection = new OracleConnection("Data Source=;User ID=system;Password=manager;Unicode=True");

这样写连接字符串,可以连接到本地orcl这个实例,没有问题。但是想连接到服务器上的orcl实例,该如何写连接字符串,其它地方都一样吧,只是Data Source要怎么写?

------回答---------

------其他回答(90分)---------

本地用Net Configuration Assistant 建个net服务,连接倒服务器,net服务名为ORCL_SVR,确保连接正确,然后Data Source=ORCL_SVR即可。

------其他回答(5分)---------

把你QQ告诉我,我连过去给你看一下。

------其他回答(5分)---------

引用 9 楼 sorry0481 的回复:

又搞了一会,发现问题了,可是不知道怎么解决,服务器使用Net Configuration Assistant 测试连接自己,没有问题。客户端全用Net Configuration Assistant 测试连接服务器也没有问题。可见已经配置好了,但是在运行Microsoft Visual Studio 2008代码时,连接字符串报错:“ORA-12154: TNS: 无法解析指定的连接标识符”,看了下断点,错误是这个:

ServerVersion “((System.Data.Common.DbConnection)(oracleConnection)).ServerVersion”引发了“System.InvalidOperationException”类型的异常 string {System.InvalidOperationException}

分析了下,应该是版本的问题,可是我只安了一个11G,没有安其它版本,结果想到,是不是安了Oracle Developer Tools for Visual Studio .NET这个引起的??哪位仁兄碰到过类似问题??该怎么解决???

你确定DB连上了?tnsnames 跟你的config档设定是否一致?我也遇到过,血的教训啊。。。

------回答---------

------其他回答(90分)---------

本地用Net Configuration Assistant 建个net服务,连接倒服务器,net服务名为ORCL_SVR,确保连接正确,然后Data Source=ORCL_SVR即可。

------其他回答(5分)---------

把你QQ告诉我,我连过去给你看一下。

------其他回答(5分)---------

引用 9 楼 sorry0481 的回复:

又搞了一会,发现问题了,可是不知道怎么解决,服务器使用Net Configuration Assistant 测试连接自己,没有问题。客户端全用Net Configuration Assistant 测试连接服务器也没有问题。可见已经配置好了,但是在运行Microsoft Visual Studio 2008代码时,连接字符串报错:“ORA-12154: TNS: 无法解析指定的连接标识符”,看了下断点,错误是这个:

ServerVersion “((System.Data.Common.DbConnection)(oracleConnection)).ServerVersion”引发了“System.InvalidOperationException”类型的异常 string {System.InvalidOperationException}

分析了下,应该是版本的问题,可是我只安了一个11G,没有安其它版本,结果想到,是不是安了Oracle Developer Tools for Visual Studio .NET这个引起的??哪位仁兄碰到过类似问题??该怎么解决???

你确定DB连上了?tnsnames 跟你的config档设定是否一致?我也遇到过,血的教训啊


当前名称:vs怎么链接oracle vs2013链接器在哪
转载源于:http://cdkjz.cn/article/hpggde.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

大客户专线   成都:13518219792   座机:028-86922220