日期:2014-05-17  浏览次数:20739 次

C# 连接 ORACLE 的问题 请教
 //连接字符串
            //string connectionString = "Data Source=orcl;User ID=sys;Password=sys;Unicode=True";
            string connectionString = "Data Source=orcl;User ID=scott;Password=scott;Unicode=True";
            //创建Oracle连接对象
            OracleConnection con = new OracleConnection(connectionString);
            //打开连接
            con.Open();

            //建立Sql查询语句
            string sql = "select * from emp";
            //创建Oracle命令行对象
            OracleCommand cmd = new OracleCommand(sql, con);
            //执行命令行对象
            OracleDataReader odr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
            IList<UserInfo> users = new List<UserInfo>();
            while (odr.Read())
            {
                UserInfo user = new UserInfo();
                user.UserID = Convert.ToInt32(odr["EMPNO"]);
                user.UserName = Convert.ToString(odr["ENAME"]);
                user.UserAge = Convert.ToString(odr["sal"]);
                users.Add(user);
            }
            //绑定DataGridView控件
            dataGridView1.DataSource = users;


在一个按钮里添加上面的代码,,一切都正常...

但是有个两个问题不明白
1

//string connectionString = "Data Source=orcl;User ID=sys;Password=sys;Unicode=True";



连接字符串,,用sys 身份,登录就是不行,建立数据源时,做测试,也连不通,不知道为啥?



2 建立的数据源名称“myoracle”,用scott 用户,测试数据源时,是OK的
 但是在代码里,数据源用“myoracle”是不行的,,换了数据库实例名“orcl”,就一切OK了
为啥呢? 不是用数据源的名字来做连接字符串的?

谢谢

------解决方案--------------------
sys用户 用 plsqldev可以连吗?
myoracle数据源 用 plsqldev可以连吗?

------解决方案--------------------
看看TNS怎么配置的。
------解决方案--------------------
应该是权限的问题吧,是你那个数据库未加有一个NET什么的权限不记得了,比较一下。