我装的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}

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

解决方案 »

  1.   

    tnanames.ora贴出来看一下!还有就是lsnrctl
    stop 
    start!
      

  2.   

    Quote=引用 2 楼 cosio 的回复:]
    SQL code
    tnanames.ora贴出来看一下!还有就是lsnrctl
    stop 
    start!
    [/Quote]  /// <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);
                }
            }[
      

  3.   

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

  4.   

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