2012-03-29 78 views
1

所以我有以下連接字符串,這是我的問題。我試圖編寫一個能夠作爲數據庫不可知的應用程序(困難但不是不可能),我已經開始在PostgreSQL上測試它,但是我似乎無法獲得OLE連接來使用它。從我所看到的完全有可能。與OLE數據庫連接使用Npgsql提供程序

我得到了一切使用PostgreSQL的特定類工作,但這使用Npgsql類型而不是通用OLE類型。

E.g. private NpgsqlCommand m_postgreSQLDatabaseCommand;

而不是 私人OleDbCommand m_oleDatabaseCommand;

這在我的情況下是不能接受的。

我試着簡單地改變連接字符串來使用Npgsql提供程序,但我不確定是否正確使用它。我得到的錯誤如下:

連接字符串:

<add name="ApplicationPostgresDefault" 
    connectionString="Server=127.0.0.1;Port=5432; 
    Database=myDatabase; 
    User Id=myUser; 
    Password=myPass; 
    Provider=Npgsql" 
/> 

錯誤:

The 'Npgsql' provider is not registered on the local machine. 

可以做些什麼來解決這個問題?

如果我在那裏正確地獲取提供程序,我是否能夠像使用Npgsql對象一樣與PostgreSQL通信?

回答

2

本地機器沒有安裝提供程序。

我會建議使用本地客戶端,而不是OleDb的反正:

http://npgsql.projects.postgresql.org/

http://connectionstrings.com/Providers/npgsql

這是你的選擇

+0

那麼使用Ole的原因是我不會意識到這個平臺,因此不能硬編碼任何東西。對通用連接方法的需求是至關重要的。數據庫平臺的唯一以前的知識將通過web.config或app.config條目。這意味着我無法爲每個平臺硬編碼我的代碼的不同版本。我的軟件必須不知道數據庫平臺,並且能夠以任何(衆所周知的)格式運行。提供者似乎是唯一的選擇。謝謝 – CSharpened 2012-03-29 11:12:05

+0

另外你如何安裝提供商?我下載的npgsql文件夾中沒有exe文件。 – CSharpened 2012-03-29 12:24:46

+0

從這裏下載提供者: http://pgfoundry.org/frs/?group_id=1000140 – 2012-03-29 16:05:47

0

Npgsql後面缺少;嗎?

+0

試戴加入它,因爲我懷疑這是不是問題。它可能早在字符串中出現過。 – CSharpened 2012-03-29 14:03:17

+0

我想這不是重要的連接字符串中的最後一個。我認爲Maziar可以提供幫助。 – radbyx 2012-03-29 14:25:17

相關問題