VS 2015 Oracle 데이터베이스 연결 상세 절차

5569 단어 VS2015Oracle
개발 환경
호스트:Win 10+VS 2015+ODP.Net for VS 2015 가상 컴퓨터:Win 7+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 설치 프로그램 을 실행 하여 설치 하고 설치 가 완료 되면 자동 으로 VS 2015 관련 플러그 인 을 등록 하 며 VS 2015 를 다시 시작 하면 SQL*PLUS 지원 등 Oracle 관련 명령 을 볼 수 있 습 니 다.데이터 베 이 스 를 추가 할 때 도 해당 옵션 을 볼 수 있 습 니 다.
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 는 한 네티즌 의 분석 에 따 르 면 오 라 클 의 감청 기 는 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 명령 을 직접 맞 출 수 없습니다.Oracle Command 가 자체 적 으로 가지 고 있 는 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
식별 자가 너무 길 어서 이 유 를 잘 모 르 겠 습 니 다.하지만 insert 명령 에서 지정 한 위치 부분 을 취소 한 후에 이 오 류 는 사 라 졌 습 니 다.
missing INTO keyword
into 키워드 가 부족 합 니 다.SQL 명령 에 오류 가 있 는 지 확인 하 십시오.
cannot insert NULL into (“SYSTEM”.”HERO”.”HEROCATEGORYID”)
이 항목 들 은 모두 0 이 아 닌 값 을 지정 하 였 기 때문에 값 을 부여 하지 않 을 수 없 으 며,대응 하 는 항목 에 값 을 부여 하면 된다.
다음은 다른 네티즌 들 의 보충:
1.Oracle Developer Tools for Visual Studio 2015 를 다운로드 하고 인터넷 주 소 는 다음 과 같 습 니 다.
 설치 후 Oacle 의 설치 디 렉 터 리 에 있 는 tnsnames.ora 파일 의 마지막 부분 을 참조 하여 Oracle Developer Tools for Visual Studio 2015 설치 디 렉 터 리 에 있 는 tnsnames.ora 파일 의 마지막 부분(직접 복사)을 수정 합 니 다.아래 ORCL=
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
) F:\app\sky\product\11.2.0\dbhome_1\NETWORK\ADMIN
3.vs 를 열 면 도구 옵션 에 sqlplus 등 roacle 내용 이 추가 되 어 있 음 을 알 수 있 습 니 다.항목 참조 에 오른쪽 단 추 를 누 르 면 참조-확장-Oracle 을 선택 하 십시오.ManageDataAccess
DataAccess 펜 이전의 DataAccess 가 더 좋 습 니 다.64 비트 32 비트 문 제 를 고려 하지 않 아 도 됩 니 다.
4.다음 코드 를 통 해 연결 성공 여 부 를 테스트 합 니 다.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Oracle.ManagedDataAccess.Client;//dll  


namespace test
{
  class Program
  {
    static void Main(string[] args)
    {
      string connString = "Data Source=orcl;User Id=zzw;Password=123456";
      OracleConnection conn = new OracleConnection();
      conn.ConnectionString = connString;
      conn.Open();
      Console.WriteLine("Connection State:" + conn.State);
      conn.Close();
      Console.ReadLine();
    }
  }
}
 콘 솔 출력 정보 가 open 이면 연결 성공 을 표시 합 니 다.

좋은 웹페이지 즐겨찾기