zoukankan      html  css  js  c++  java
  • vs2012 连接oracle11g 及数据的insert及select 的总结

    下载链接Oracle 11g所需的驱动ODTwithODAC1120320_32bit,下载链接为http://www.oracle.com/technetwork/topics/dotnet/utilsoft-086879.html

    安装ODTwithODAC1120320_32bit,安装过程中选择安装产品是只需要选择Oracle Client即可

    转载安装完ODTwithODAC112012,出现ORA-12560:TNS:协议适配器错误

    参考:http://blog.csdn.net/tan_yixiu/article/details/6762357

    操作系统:windows7

    开发工具:VS2012

    数据库:oracle11g

    安装ODAC :ODTwithODAC112012后,出现ORA-12560:TNS:协议适配器错误

    ODTwithODAC112012的下载地址:http://www.oracle.com/technetwork/topics/dotnet/utilsoft-086879.html

     

    进入系统环境变量设置,查看Path路径,发现在安装ODAC时,同时安装了oracle客户端,

    安装完成后发现在Path路径的最前面多了两个安装ODAC时产生的路径

    F:appAdministratorproduct11.2.0client_1;

    F:appAdministratorproduct11.2.0client_1in;

    此时path路径为:F:appAdministratorproduct11.2.0client_1;F:appAdministratorproduct11.2.0client_1in;E:appAdministratorproduct11.2.0dbhome_1in;%SystemRoot%system32;%SystemRoot%;%SystemRoot%System32Wbem;%SYSTEMROOT%System32WindowsPowerShellv1.0;

    这两个路径放到了oracle11g数据库路径前面,导致出现ORA-12560:TNS:协议适配器错误

    将新加入的路径F:appAdministratorproduct11.2.0client_1;F:appAdministratorproduct11.2.0client_1in;置后(oracle数据库路径的后面)即可解决ORA-12560:TNS:协议适配器错误。

    例如:将path修改为:E:appAdministratorproduct11.2.0dbhome_1in;%SystemRoot%system32;%SystemRoot%;%SystemRoot%System32Wbem;%SYSTEMROOT%System32WindowsPowerShellv1.0;F:appAdministratorproduct11.2.0client_1;F:appAdministratorproduct11.2.0client_1in;

    解决ORA-12560:TNS:协议适配器错误。

     

    接下来配置oracle客户端,否则VS2010无法连接到oracle数据

    先找到 Oracle 数据库的安装目录,然后在其中找到如下目录

    例如:我的安装在 E盘

    E:appAdministratorproduct11.2.0dbhome_1NETWORKADMIN

    在其中找到下面标记的两个文件:tnsnames.ora 和sqlnet.ora

    然后将这两个文件拷贝到 Oracle Developer Tools for Visual Studio .NET 的安装目录下的以下目录,

    例如:我的安装在F盘

    F:appAdministratorproduct11.2.0client_1NetworkAdmin

    然后便可以重启机器了,就可以了(注意我这个oracle数据库和Oracle Developer Tools for Visual Studio .NET 安装在同一台服务器上了)。

     

    vs2012连接oracle11g(本人实践

     

     

    连接oracle:

    public class DBHelper
    {
    public const string conStr = "DATA SOURCE=ORCL;USER ID=SCOTT;PASSWORD=tiger";
    }

    要有这个using System.Data.OracleClient;

    select例子:(没排版)

    public LoginUser FindUserByLOGINID(string LOGINID)//通过LOGINID查找T_USERS表
    {
    string cmdStr = "select LOGINID,LOGINPWD from T_USERS where LOGINID=:LOGINID";
    using (OracleConnection conn = new OracleConnection(DBHelper.conStr))
    {
    conn.Open();
    using (OracleCommand cmd = new OracleCommand(cmdStr, conn))
    {
    cmd.Parameters.AddWithValue("LOGINID",LOGINID);
    using (OracleDataReader dr = cmd.ExecuteReader())
    {
    if (dr.Read())
    {
    LoginUser u = new LoginUser();
    u.LOGINID = Convert.ToString(dr["LOGINID"]);
    u.LOGINPWD = Convert.ToString(dr["LOGINPWD"]);
    return u;
    }
    return null;
    }
    }
    }

    }

     

    insert例子:(没排版)

    public int SubmitRegisterInformation(RegisterUSER u)//提交用户注册信息
    {
    string cmdStr = @"INSERT INTO T_USERS
    (LOGINID
    ,LOGINPWD
    ,REGISTER_TIME)
    VALUES
    (:LOGINID
    ,:LOGINPWD
    ,TO_DATE(:REGISTER_TIME,'yyyy-mm-dd hh24:mi:ss'))";//REGISTER_TIME在oracle数据库里是date类型,不过存进oracle里显示的是,这个问题以后详细讲
    using(OracleConnection conn = new OracleConnection(DBHelper.conStr))
    {
    conn.Open();
    using (OracleCommand cmd = new OracleCommand(cmdStr, conn))
    {

    string register_time = DateTime.Now.ToShortDateString();
    register_time += DateTime.Now.ToShortTimeString();

    //string register_time = DateTime.Now.ToLongDateString().ToString();
    //register_time += DateTime.Now.ToLongTimeString().ToString();

    cmd.Parameters.AddWithValue("LOGINID",u.LOGINID);
    cmd.Parameters.AddWithValue("LOGINPWD", u.LOGINPWD);
    cmd.Parameters.AddWithValue("REGISTER_TIME",register_time);
    return cmd.ExecuteNonQuery();
    }
    }
    }

     

  • 相关阅读:
    JS高级——eval
    JS高级——Object.prototype成员
    JS高级——原型链
    JS高级——逻辑中断
    移动web——bootstrap媒体对象
    移动web——bootstrap如何修改原组件
    移动web——bootstrap响应式轮播图
    Leetcode题解
    位运算实现四则运算(C++实现)
    扫码登陆原理
  • 原文地址:https://www.cnblogs.com/landiljy/p/4545199.html
Copyright © 2011-2022 走看看