2017년 2월 20일 월요일

[국비지원IT교육/자마린교육/C#/닷넷학원/WPF교육/ADO.NET학원추천_탑크리에듀][윈도우,64비트,ASP.NET,ODP.NET오류]OraOLEDB.Oracle provider is not registered…

[윈도우,64비트,ASP.NET,ODP.NET오류]OraOLEDB.Oracle provider is not registered on the local machine, ODAC32비트, ODAC64비트, ORACLE OLEDB

환경 : 윈도우7 64비트
오라클 : 11.2....
비주얼 스튜디오 2010

수없이 많은 글을 보고 다해보았지만 잘 되지 않아 마지막 방법을 썼다.


1. ODAC 32비트를 먼저 설치하고 , ODAC 64비트를 설치하면 오라클 접속 잘된다.

ODAC는 다음 URL에서 다운로드 하자.
http://www.oracle.com/technetwork/topics/dotnet/downloads/index.html


- 설치 시 각각 홈디렉토리는 따로 주고, 홈디렉토리 및 그아래 BIN 폴더 각각 경로(PATH)에 추가.

- 각각의 홈디렉토리 아래 network\admin에 tnsnames.ora 파일을 만들자.

[예, 아래 onj라는 이름이 tns이름이며 오라클 접속시 data source 명으로 입력한다.]

onj=
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST =192.168.0.27)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = onj)
    )
  )



2. 비주얼 스튜디오 프로젝트 속성 -> 빌드 -> platform target 은 "ANY CPU"로 하고...

3. IIS에서 사이트의 응용프로그램 풀 --> 고급설정 에서  "32비트 응용프로그램 사용"을 "TRUE"로 하자.


[예제]


<%@ OutputCache Duration="10" VaryByParam="deptno" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.OleDb" %>
<html>
<script language="C#" runat="server">
void Paging(Object src, System.Web.UI.WebControls.DataGridPageChangedEventArgs e) {
MyDataGrid.CurrentPageIndex = e.NewPageIndex;
Bind();
}
void Page_Load(Object Src, EventArgs E ) {
if (!Page.IsPostBack)
Bind();
}
void Bind() {
String selectCmd;
String deptno = Request["deptno"];
if( deptno == null ) {
selectCmd = "select empno, ename, sal, deptno from emp";
}
else {
selectCmd = "select empno, ename, sal, deptno from emp where deptno = " + deptno ;
}
string conStr = "Provider=OraOLEDB.Oracle;data source=ONJ;User ID=scott;Password=tiger";
OleDbConnection myConnection = new OleDbConnection(conStr);
OleDbDataAdapter adapter = new OleDbDataAdapter(selectCmd, myConnection);
DataSet ds = new DataSet();adapter.Fill(ds);
MyDataGrid.DataSource=new DataView(ds.Tables[0]);
MyDataGrid.DataBind();
TimeMsg.Text = DateTime.Now.ToString("G");
}
</script>
<body>
    <form id="form1" runat="server">
    <h3>
        <font face="Verdana">출력캐싱사용하기:</font></h3>
    <b>부서코드별보기:<%=Request["deptno"]%></b>
    <table cellspacing="0" cellpadding="3" rules="all" style="border-left-color: black;
        border-bottom-color: black; width: 700px; border-top-color: black; border-collapse: collapse;
        background-color: #aaaadd; border-right-color: black">
        <tr>
            <td>
                <a href="outputcashing.aspx?deptno=10">10번부서</a>
            </td>
            <td>
                <a href="outputcashing.aspx?deptno=20">20번부서</a>
            </td>
            <td>
                <a href="outputcashing.aspx?deptno=20">30번부서</a>
            </td>
        </tr>
    </table>
    <p>
        <asp:DataGrid ID="MyDataGrid" runat="server" Width="700px" BackColor="#CCCCFF" BorderColor="Black"
            CellPadding="3" Font-Name="Verdana" Font-Size="8pt" HeaderStyle-BackColor="#aaaadd"
            Height="153px" Font-Names="Verdana" PageSize="3" AllowPaging="True" AllowSorting="True"
            OnPageIndexChanged="Paging">
            <FooterStyle BackColor="#99CCFF" BorderStyle="Solid" HorizontalAlign="Center" />
            <HeaderStyle BackColor="#AAAADD"></HeaderStyle>
            <PagerStyle Mode="NumericPages" />
        </asp:DataGrid>
        <p>
            <i>마지막생성일시:</i><asp:Label ID="TimeMsg" runat="server" /></p>
    </form>
</body>
</html>

댓글 없음:

댓글 쓰기