日期:2014-05-16  浏览次数:21778 次

Oracle 数据库 (OLE DB) 不支持关键字: “provider”的问题
链接字符串: private readonly static string connectionString = "Data Source=\"(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=PC-201103031439)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=dbwjl.cs.hubu)))\";Persist Security Info=True;User ID=wjl";
请大家帮帮忙


------解决方案--------------------
C# code

--c#连接数据库
/*
1、控制面板->管理工具->数据源(ODBC)->添加数据源->选择oracle 客户端 
       Data Source Name 可以任意起名,推荐和SID一样 
       Description 描述 
       TNS Service Name 下拉菜单中会自动显示环境变量TNS_ADMIN所指目录下的tnsnames.ora文件中SERVICE_NAME的名称,也就是要连接的SID 
       UserID 用户名 
2、Test Connection连接成功 
C# 
项目->添加引用->.NET->System.Data.OracleClient.dll (这个DLL在装完DOTNET 1.1就存在) 
*/
using System;
using System.Data;
using System.Windows.Forms;
using System.Data.OracleClient;
 
namespace Test
...{
    /**//**//**//// <summary>
    /// 简洁期间,直接将实现写在构造函数中
    /// </summary>
    public class Test
    ...{
        public Test()
        ...{
            //
            // TODO: 在此处添加构造函数逻辑
            //
            string ConnectionString = "Data Source=orcl; User Id=SCOTT; Password=scott";  //连接字符串
            OracleConnection conn = new OracleConnection(ConnectionString);    //创建一个新连接
            try
            ...{
                conn.Open();    //打开连接
                OracleCommand cmd = conn.CreateCommand();
                cmd.CommandText = "select * from emp";    //SQL语句
                OracleDataReader rs = cmd.ExecuteReader();
                while (rs.Read())    //读取数据,如果rs.Read()返回为false的话,就说明到记录集的尾部了
        ...{
                    MessageBox.Show(rs.GetString(1));
                }
                rs.Close();
            }
            catch (Exception e)
            ...{
                MessageBox.Show(e.Message);
            }
            finally
            ...{
                conn.Close();
            }
        }
    }
}