我用pl/sql连数据库的时候没有问题:   username:   dbo         password:sunshine     主机字符串:   aodb   
  但我用下面的asp代码连接时却报“ORA-01017:   无效的用户名/口令;登录被拒绝   ”,这是什么原因呢?   
  <% 
set   conn=server.createobject("adodb.connection")   
     dns="Provider=OraOLEDB.Oracle.1;Persist   Security   Info=True;User   ID=dbo;Password=sunshine;Data   Source=aodb"
     conn.Open   dns
 SQL="insert   into   test1(a)   values('123')"   
  set   rs=conn.execute(SQL)   
    
  set   rs=nothing   
  conn.close   
  set   conn=nothing   
%> 

解决方案 »

  1.   

    dbo?
    你ORACLE数据库里有这个用户吗
    用PL/SQL你是如何登陆的
      

  2.   

    以下来自网络:举例说明下面是一个使用.NET for Oracle组件操纵Oracle数据库的例子。在写程序之前,先要在Oracle数据库中建立一个表,并且加入一行数据。使用下面的语句。建立一个名为OracleTypesTable的表
    "create table OracleTypesTable (MyVarchar2 varchar2(3000),MyNumber number(28,4)
    Primary key ,MyDate date,MyRaw RAW(255))";
    插入一行数据
    "insert into OracleTypesTable values ('test',4,to_date('2000-01-11
    12:54:01','yyyy-mm-dd hh24:mi:ss'),'0001020304')";
    下面的程序就是要通过.NET for Oracle组件来访问Oracle数据库,并且显示出这行数据。在程序中请注意前文中所说明的类,并且联想.NET中关于数据处理类的使用方法。1. using System;
    2.using System.Web;
    3.using System.Web.UI;
    4.using System.Web.UI.HtmlControls;
    5.using System.Web.UI.WebControls;
    6.using System.Data;
    7.using System.Data.OracleClient;8.public class pic2:Page {
    9. public Label message;
    10. public void Page_Load(Object sender,EventArgs e)
    11. {
    //设置连接字符串
    12. string connstring="Data Source=eims;user=zbmis;password=zbmis;";
    //实例化OracleConnection对象
    13. OracleConnection conn=new OracleConnection(connstring);14. try
    15. {
    16. conn.Open();
    //实例化OracleCommand对象
    17. OracleCommand cmd=conn.CreateCommand();18. cmd.CommandText="select * from zbmis.OracleTypesTable";
    19. OracleDataReader oracledatareader1=cmd.ExecuteReader();
    //读取数据
    20. while (oracledatareader1.Read()) {
    //读取并显示第一行第一列的数据
    21. OracleString oraclestring1=oracledatareader1.GetOracleString(0);
    22. Response.Write("OracleString " +oraclestring1.ToString());//读取并显示第一行第二列的数据
    23. OracleNumber oraclenumber1 =oracledatareader1.GetOracleNumber(1);
    24. Response.Write("OracleNumber "+oraclenumber1.ToString());//读取并显示第一行第三列的数据
    25. OracleDateTime oracledatetime1=oracledatareader1.GetOracleDateTime(2);
    26. Response.Write("OracleDateTime " +oracledatetime1.ToString());//读取并显示第一行第四列的数据
    27. OracleBinary oraclebinary1=oracledatareader1.GetOracleBinary(3);
    28. if(oraclebinary1.IsNull==false)
    29. {
    30. foreach(byte b in oraclebinary1.Value)
    31. {
    32. Response.Write("byte " +b.ToString());
    33. }
    34. }
    35. }
    //释放资源
    36. oracledatareader1.Close();
    37. }
    38. catch(Exception ee)
    39. {
    //异常处理
    40. message.Text=ee.Message;
    41. }
    42. finally
    43. {
    //关闭连接
    44. conn.Close();
    45. }
    46. }
    47.}
    如果您对于.NET中数据操作的内容很熟悉,那么相信上面的程序是完全看得懂的。所以在这里分析上面代码意义不是很大。请那些既使用.NET又使用Oracle的读者记住:.NET for Oracle组件的设计非常类似.NET中内置的Data Provider for SQL Server和OLEDB。