捣鼓了一天了,崩溃了。。
在做一个项目需要连接多种数据库 mssql mysql 都很简单的连接成功,可操蛋的oracle就是连接不上
查了很多资料,又说oracle目录权限的,有说环境变量的,还说要安装客户端!客户端5 6百M,坑爹啊!!!
我用SqlDeveloper远程很简单就连上了,说明数据库配置没有问题,对oracle不熟悉,请高人指点。

解决方案 »

  1.   


    OracleConnection conn = null;
    string fuwuqi = this.textBox1.Text.ToString();
                string shili = this.textBox2.Text.ToString();
                string user = this.textBox3.Text.ToString();
                string pwd = this.textBox4.Text.ToString();
                string connString = @"Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=" + fuwuqi + ")(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=" + shili + ")));User Id=" + user + ";Password=" + pwd + ";";
                conn = new OracleConnection(connString);
      

  2.   

    debug报什么错误?可能是你的连接字符串有问题
      

  3.   

    各种字符串都试过了 2#的也试过
    用OLE也连过老是报错 System.Data.OracleClient需要Oracle客户端软件8.1.7或更高版本
      

  4.   


    using System;
    using System.Data;
    using System.Configuration;
    using System.Linq;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.HtmlControls;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Xml.Linq;
    using System.Data.OracleClient;namespace ScanWebService
    {
        public class Oracle
        {
            public OracleConnection conn;
            private readonly string connectionString = "data source=JYDB;user=cserp;password=cserp;";
            private bool Open()
            {
                // 打开数据库连接
                if (conn == null)
                {
                    conn = new OracleConnection(connectionString);
                }
                else
                {
                    conn.Close();
                    conn.Dispose();
                    conn = new OracleConnection(connectionString);            }
                if (conn.State == System.Data.ConnectionState.Closed)
                    try
                    {                    conn.Open();                }
                    catch (OracleException e)
                    {
                        conn.Close();
                        conn.Dispose();
                        return false;                }
                return true;
            }        
            public int test(string id,string name) {
                this.Open();
                string sql = "insert into A_TEST(id,name) values(:id,:name)";
                OracleCommand cmd = new OracleCommand(sql, conn);
                OracleParameter pari = new OracleParameter(":id", id);
                cmd.Parameters.Add(pari);  
                OracleParameter parn = new OracleParameter(":name", name);
                cmd.Parameters.Add(parn);
                int result = cmd.ExecuteNonQuery();
                conn.Close();
                cmd.Dispose();
                return result; 
            }
        }
    }
      

  5.   

    这位大哥,JYDB是数据库名?我需要远程连接
      

  6.   

    连接oracle需不需要再本地安装什么组件啊?连Mysql我是添加了个COM组件才连接成功的
      

  7.   

    JYDB 是本地配的服务名a,你连oracle,在本地先装客户端啊。配好了客户端,就可以连了啊
      

  8.   

    连接字符串1: 
                       OracleConnection orcl_conn = new OracleConnection("Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.251)(PORT=1521))(CONNECT_DATA=(SID=abc)));User Id=sys;Password=123456;");
                        orcl_conn.Open();2:Data Source=192.168.1.251;User Id=sys;Password=123456;
      

  9.   

    那我自己开发程序也需要安装客户端?发布程序的时候还得让用户自己安装客户端?那oracle也太操蛋了吧
    还有客户端是哪个?
      

  10.   

    那我自己开发程序也需要安装客户端?发布程序的时候还得让用户自己安装客户端?那oracle也太操蛋了吧
    还有客户端是哪个?
    你没装客户端就连了?话说装了客户端自己的机子卡的要死了,太大了,如果是用的时候一般都禁止它,实在是大
      

  11.   

    那我自己开发程序也需要安装客户端?发布程序的时候还得让用户自己安装客户端?那oracle也太操蛋了吧
    还有客户端是哪个?
    你没装客户端就连了?话说装了客户端自己的机子卡的要死了,太大了,如果是用的时候一般都禁止它,实在是大
    远程连接都必须装那玩意?Mysql MSSQL SyBase都不需要安装什么客户端,用ODBC 或OLE什么的就可以连了啊,Oracle这么麻烦?
      

  12.   

    还有我用SQLDeveloper连接远程oracle也没装什么客户端就连接成功了啊。。
      

  13.   

    那我自己开发程序也需要安装客户端?发布程序的时候还得让用户自己安装客户端?那oracle也太操蛋了吧
    还有客户端是哪个?
    你没装客户端就连了?话说装了客户端自己的机子卡的要死了,太大了,如果是用的时候一般都禁止它,实在是大
    远程连接都必须装那玩意?Mysql MSSQL SyBase都不需要安装什么客户端,用ODBC 或OLE什么的就可以连了啊,Oracle这么麻烦?
    远程可以不用装的,http://wenku.it168.com/d_000265853.shtml
      

  14.   

    那我自己开发程序也需要安装客户端?发布程序的时候还得让用户自己安装客户端?那oracle也太操蛋了吧
    还有客户端是哪个?
    你没装客户端就连了?话说装了客户端自己的机子卡的要死了,太大了,如果是用的时候一般都禁止它,实在是大
    远程连接都必须装那玩意?Mysql MSSQL SyBase都不需要安装什么客户端,用ODBC 或OLE什么的就可以连了啊,Oracle这么麻烦?不知道LZ是远程连接,我看了上面的代码以为LZ本地连接呢
      

  15.   

    那我自己开发程序也需要安装客户端?发布程序的时候还得让用户自己安装客户端?那oracle也太操蛋了吧
    还有客户端是哪个?
    你没装客户端就连了?话说装了客户端自己的机子卡的要死了,太大了,如果是用的时候一般都禁止它,实在是大
    远程连接都必须装那玩意?Mysql MSSQL SyBase都不需要安装什么客户端,用ODBC 或OLE什么的就可以连了啊,Oracle这么麻烦?不知道LZ是远程连接,我看了上面的代码以为LZ本地连接呢难道你们做项目都是本地连的?没有远程连接过?
      

  16.   

    我记着以前在Linux下用OTL连过,也没这么费劲!
      

  17.   

    需要安装客户端的,以前用VB里,应用程序要与数据连接的机子上都要安装客户端,配置也麻烦,记得要修改oracle客户端安装目录中的tnsnames.ora文件.也有方法说不用安装客户端的,看http://download.csdn.net/detail/gaohuaiyan/782720