代码改变世界

[导入]C# 连接 oracle 数据库

2006-05-25 23:22  BAsil  阅读(5)  评论(0编辑  收藏  举报

using System.Data.OracleClient;

代码

string myConnString = "user id=system;data source=huajie;password=manager";
    System.Data.OracleClient.OracleConnection myConnection = new System.Data.OracleClient.OracleConnection(myConnString);
           
    OracleCommand catCMD = myConnection.CreateCommand();
    catCMD.CommandText = " select * from t";

    myConnection.Open();

    OracleDataReader myReader = catCMD.ExecuteReader();

    while(myReader.Read())
    {
     WriteLog(string.Format("{0}\t{1}\t",myReader.GetInt32(0).ToString(),myReader.GetString(1)));
    }

tnsnames.ora

# TNSNAMES.ORA Network Configuration File: E:\oracle\ora90\network\admin\tnsnames.ora
# Generated by Oracle configuration tools.

INST1_HTTP =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = billgates)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVER = SHARED)
      (SERVICE_NAME = MODOSE)
      (PRESENTATION = http://HRService)
    )
  )

EXTPROC_CONNECTION_DATA =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
    )
    (CONNECT_DATA =
      (SID = PLSExtProc)
      (PRESENTATION = RO)
    )
  )

HUAJIE =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = billgates)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = Huajie.Jinan)
    )
  )

碰到的错误

2005-11-16 22:01:03:System.Data.OracleClient.OracleException: ORA-12154: TNS: 无法处理服务名

   at System.Data.OracleClient.DBObjectPool.GetObject(Object owningObject, Boolean& isInTransaction)
   at System.Data.OracleClient.OracleConnectionPoolManager.GetPooledConnection(String encryptedConnectionString, OracleConnectionString options, OracleConnection owningObject, Boolean& isInTransaction)
   at System.Data.OracleClient.OracleConnection.OpenInternal(OracleConnectionString parsedConnectionString, Object transact)
   at System.Data.OracleClient.OracleConnection.Open()
   at OracleConnection.Form1.button1_Click(Object sender, EventArgs e) in f:\code\oracleconnection\form1.cs:line 100
---------------------------
2005-11-16 22:02:12:System.Data.OracleClient.OracleException: ORA-12514: TNS: 监听进程不能解析在连接描述符中给出的 SERVICE_NAME

   at System.Data.OracleClient.DBObjectPool.GetObject(Object owningObject, Boolean& isInTransaction)
   at System.Data.OracleClient.OracleConnectionPoolManager.GetPooledConnection(String encryptedConnectionString, OracleConnectionString options, OracleConnection owningObject, Boolean& isInTransaction)
   at System.Data.OracleClient.OracleConnection.OpenInternal(OracleConnectionString parsedConnectionString, Object transact)
   at System.Data.OracleClient.OracleConnection.Open()
   at OracleConnection.Form1.button1_Click(Object sender, EventArgs e) in f:\code\oracleconnection\form1.cs:line 100

本篇文章使用aigaogao Blog软件发布, “我的Blog要备份”


文章来源:http://blog.donews.com/basilwang/archive/2005/11/16/629420.aspx