直接用DOS批处理文件修改TNSNAMES.ORA文件,不知道算不算一种方法

解决方案 »

  1.   

    应该可以,你可以用程序直接操作相应的tnsnames.ora文件,达到同样的目的。
      

  2.   

    //读注册表
    public string ReadReg()
    {
      try
      {
    string readReg ="";
    RegistryKey hklm = Registry.LocalMachine ;
    RegistryKey rOracle = hklm.OpenSubKey ( @"SOFTWARE\ORACLE" , true ) ;
    if(rOracle.GetValue( "ORACLE_HOME") != null)
    {
               readReg =(string)rOracle.GetValue( "ORACLE_HOME");
    }
    rOracle.Close();
    hklm.Close();
    return readReg;
    }
    catch
    {
    return "";
    }

    }//读取tnsnames.ora
    public string ReadFile(string FileName)
    {

    if(File.Exists(FileName))
    {
    StreamReader objStreamReader = null;
    try
    {
    objStreamReader = File.OpenText(FileName);//(@"c:\xc.txt"));
    string strScript =objStreamReader.ReadToEnd();
    objStreamReader.Close();
    return strScript;
    }
    catch
    {
    return "" ;
    }
    }
    else
    {
    return "" ;
    }


    }
    //写入tnsnames.ora
    public bool WriteFile(string FileName,string FileInfo)
    {

    if(File.Exists(FileName))
    {
    StreamWriter objStreamWriter = null;
    try
    {
    objStreamWriter = new StreamWriter(FileName,false);//(@"c:\xc.txt"));
    objStreamWriter.Write(FileInfo);

    objStreamWriter.Close();
    return true;

    }
    catch
    {
    return false;
    }
    }
    else
    {
    return false;
    }

    }
    上面的放在一个类里面下面使用:
    //Oracle客户端配置
    string OraclePathName = changelink.ReadReg() + @"\network\admin\tnsnames.ora";
    string OracleOra8Info = changelink.ReadFile(OraclePathName);//读取oracle文件
    if(OracleOra8Info.Length>0)
    {
       OracleOra8Info = Regex.Replace(OracleOra8Info,r,textBox1.Text.ToString().Trim());
       if(changelink.WriteFile(OraclePathName,OracleOra8Info))
       {
    MessageBox.Show("Oracle客户端配置成功!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information);

        }
        else
        {
    MessageBox.Show("Oracle客户端配置没有成功!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information);
    return;
        }

    }
    else
    {
       MessageBox.Show("Oracle客户端配置没有成功!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information);
       return;
    }