vs如何连接oracle vs如何连接数据库

visual怎么连接oracle数据库

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

成都创新互联专注于中大型企业的成都网站设计、成都网站建设和网站改版、网站营销服务,追求商业策划与数据分析、创意艺术与技术开发的融合,累计客户上千家,服务满意度达97%。帮助广大客户顺利对接上互联网浪潮,准确优选出符合自己需要的互联网运用,我们将一直专注成都品牌网站建设和互联网程序开发,在前进的路上,与客户一起成长!

配置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命令是否有错误。

32位的vs2013怎么连接64位的oracle

64位的oracle是在本机上吗?

如果是的,那么用类似下面的方法就可以。

使用InstantClient,PL/SQL Developer连接Oracle(可以在32位机器上使用、也可以在64位机器上使用):

•1. 下载32位Oracle InstantClient,并展开到某目录,例如C:\instantclient-basic-nt-11.2.0.2.0;

•2. 将系统的tnsnames.ora拷贝到该目录下;

•3. 在PLSQL Developer中设置Oracle_Home和OCI Library:

ToolsPreferencesOracleConnection:

Oracle_Home: C:\instantclient-basic-nt-11.2.0.2.0

OCI Library: C:\instantclient-basic-nt-11.2.0.2.0\oci.dll

•4. 在PLSQL Developer目录下新建如下bat文件,替换其快捷方式,启动PLSQL Developer:

@echo off

set path=C:\instantclient-basic-nt-11.2.0.2.0

set ORACLE_HOME=C:\instantclient-basic-nt-11.2.0.2.0

set TNS_ADMIN=C:\instantclient-basic-nt-11.2.0.2.0

set NLS_LANG=AMERICAN_AMERICA.ZHS16GBK

start plsqldev.exe

vs2022如何连接oracle

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

本机环境: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,这样就都行了。

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档设定是否一致?我也遇到过,血的教训啊

VS2008如何远程连接oracle数据库?高分

远程连接字符串应该是做这个DB的人设置好,然后告诉你的.

比如我做了一个库叫TEST,并且这个库的IP是192.168.1.100,

那么我用ORACLE自带的NET CONFIGURATION ASSISTANT建立一个NET SEVERS,一路默认设置,那么连接字符串就是TEST@192.168.1.100,当然,如果我愿意,我可以把连接字符串改成NEWTEST,别人是不会知道的

1、2、3版本是不同的库环境。必须服务器装下3.5的框架,然后iis设置下asp.net版本就可以了。

如果你那边没这类主机,我这边有做的,可百度HI我。

vs怎么连接oracle数据库代码

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=60.217.72.134/orcl;User ID=**;PassWord=**";

queryString = "SELECT * FROM test";

OracleConnection myConnection = new OracleConnection(connectionString);

OracleCommand myORACCommand = myConnection.CreateCommand();

myORACCommand.CommandText = queryString;

myConnection.Open();

OracleDataReader myDataReader = myORACCommand.ExecuteReader();

myDataReader.Read();

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

myDataReader.Close();

myConnection.Close();

}

}


当前名称:vs如何连接oracle vs如何连接数据库
文章起源:http://ybzwz.com/article/hgjssi.html