+ -
当前位置:首页 → 问答吧 → oracle连接错误

oracle连接错误

时间:2011-11-28

来源:互联网

我装的oracle好像是客户端的 我连接的数据库是别人电脑上面的数据库,用plsql能打开,
  // 建立数据库连接.
  OracleConnection conn = new OracleConnection(connStr);
  // 创建一个适配器
  OracleDataAdapter adapter = new OracleDataAdapter(name, conn);
  // 创建DataSet,用于存储数据.
  DataSet testDataSet = new DataSet();
  // 执行查询,并将数据导入DataSet.
  adapter.Fill(testDataSet, "result_data");
  // 关闭数据库连接.
  conn.Close();
  DataTable dt = testDataSet.Tables[0];
  return dt;
这个也能访问(自己写的),
但是,用DBhelper就不能打开。提示信息是“- base {"ORA-12154: TNS: 无法解析指定的连接标识符\n"} System.Data.Common.DbException {System.Data.OracleClient.OracleException}

请问怎么解决这个问题??

作者: qwrsfsdsf   发布时间: 2011-11-28

该回复于2011-11-28 10:19:14被管理员删除

  • 对我有用[0]
  • 丢个板砖[0]
  • 引用
  • 举报
  • 管理
  • TOP
#2楼 得分:0回复于:2011-11-28 10:00:03
SQL code
tnanames.ora贴出来看一下!

还有就是lsnrctl
stop 


start!

作者: qwrsfsdsf   发布时间: 2011-11-28

Quote=引用 2 楼 cosio 的回复:]
SQL code
tnanames.ora贴出来看一下!

还有就是lsnrctl
stop 


start!
[/Quote]
C# code

  /// <summary>
        /// Execute a database query which does not include a select
        /// </summary>
        /// <param name="connString">Connection string to database</param>
        /// <param name="cmdType">Command type either stored procedure or SQL</param>
        /// <param name="cmdText">Acutall SQL Command</param>
        /// <param name="commandParameters">Parameters to bind to the command</param>
        /// <returns></returns>
        public static int ExecuteNonQuery(string connectionString, CommandType cmdType, string cmdText, params OracleParameter[] commandParameters)
        {
            // Create a new Oracle command
            OracleCommand cmd = new OracleCommand();

            //Create a connection
            using (OracleConnection connection = new OracleConnection(connectionString))
            {

                //Prepare the command
                PrepareCommand(cmd, connection, null, cmdType, cmdText, commandParameters);

                //Execute the command
                int val = cmd.ExecuteNonQuery();
                cmd.Parameters.Clear();
                return val;
            }
        }
  /// <summary>
        /// Internal function to prepare a command for execution by the database
        /// </summary>
        /// <param name="cmd">Existing command object</param>
        /// <param name="conn">Database connection object</param>
        /// <param name="trans">Optional transaction object</param>
        /// <param name="cmdType">Command type, e.g. stored procedure</param>
        /// <param name="cmdText">Command test</param>
        /// <param name="commandParameters">Parameters for the command</param>
        private static void PrepareCommand(OracleCommand cmd, OracleConnection conn, OracleTransaction trans, CommandType cmdType, string cmdText, OracleParameter[] commandParameters)
        {

            //Open the connection if required
            if (conn.State != ConnectionState.Open)
                conn.Open();

            //Set up the command
            cmd.Connection = conn;
            cmd.CommandText = cmdText;
            cmd.CommandType = cmdType;

            //Bind it to the transaction if it exists
            if (trans != null)
                cmd.Transaction = trans;

            // Bind the parameters passed in
            if (commandParameters != null)
            {
                foreach (OracleParameter parm in commandParameters)
                    cmd.Parameters.Add(parm);
            }
        }


[

作者: cosio   发布时间: 2011-11-28

注意C#中Oracle数据库的不现版本的连接字符串的格式。
请仔细检查。

作者: qwrsfsdsf   发布时间: 2011-11-28

引用 4 楼 luiseradl 的回复:
注意C#中Oracle数据库的不现版本的连接字符串的格式。
请仔细检查。

数据库的链接字符串是:Data Source=hrds;Persist Security Info=True;User ID=da;Password=111111;Unicode=True 这样的,上面的那个方法就查询数据!!

作者: LuiseRADL   发布时间: 2011-11-28

没有人知道吗?

作者: qwrsfsdsf   发布时间: 2011-11-28

数据库版本是什么?

作者: qwrsfsdsf   发布时间: 2011-11-28

g10的

作者: LuiseRADL   发布时间: 2011-11-28