如何使用visual studio 2013连接到oracle 10g

时间:2014-10-22 11:27:35

标签: oracle visual-studio-2013

我是oracle数据库的新手,所以我想知道如何使用visual studio 2013连接到oracle 10g数据库。 好吧,我去了服务器资源管理器并添加连接,我选择数据源为Oracle Database,数据提供者为.NET Framework Data Provider for OLE DB。 在测试连接之后,我收到错误消息 - ORA-06413: Connection not open.

我搜索了很多,但无法找到这个问题的正确答案。 请有人帮帮我。

好的,这就是我到现在为止所做的事情 -



using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.OleDb;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace Hostel_Management_System
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void btn_login_Click(object sender, EventArgs e)
        {
            OleDbConnection con = new OleDbConnection("Data Source=localhost;Initial Catalog=XE;Provider=SQLOLEDB;user-name=system;password=mypassword");
            con.Open();
            MessageBox.Show(con.State);
        }
    }
}




我在System.Data.dll中收到System.Data.OleDb.OleDbException。

这有任何帮助吗?

[1]。 http://i.stack.imgur.com/KUlZc.png

1 个答案:

答案 0 :(得分:0)

AFAIK创建连接到Oracle的.net应用程序的最佳方法是使用ODP.net,更具体地说是可用的托管驱动程序here

托管驱动程序允许您避免在运行应用程序的计算机上安装Oracle客户端。 示例代码部分来自Oracle website

using System;
using System.Data;
using Oracle.ManagedDataAccess.Client; 
using System.Configuration; 

class OracleConnectionSample
{
  static void Main()
  {  
    // Connect
    const string connectionStringName = ...
    string constr = ConfigurationManager.ConnectionStrings[connectionStringName].
                    ConnectionString;
    using (var con = new OracleConnection(constr))
    {
      con.Open();

      // Execute a SQL SELECT
      using (OracleCommand cmd = con.CreateCommand())
      {
        cmd.CommandText = "select * from emp";
        OracleDataReader reader = cmd.ExecuteReader();

        // Print all employee numbers
        while (reader.Read())
        {
          Console.WriteLine(reader.GetInt32(0));
        }
      }
    }
  }
}