我已經是在這個問題上工作了一段時間,這裏的情況我使用強迫超時連接:PostgreSQL的OLEDB提供程序超時錯誤
在PostgreSQL我已經改變了的Postgres .conf將其超時設置爲10毫秒。
statement_timeout = 10
這裏是重要的代碼:
var conn = new OleDbConnection(connectionString);
var da = new OleDbDataAdapter(sql, conn);
var dt = new DataTable();
var result = da.Fill(dt);
這裏是連接字符串的內容:
"Provider=PGNP.1;Password=****;Persist Security Info=True;User ID=****;Initial Catalog=****;Data Source=localhost;Extended Properties=\"SSL=allow;\""
發生超時時,沒有錯誤或異常是是拋出並且dt.Rows.Count
顯示作爲結果。
當我改變postgres.conf文件返回到statement_timeout = 0
(禁用它)的dt.Rows.Count
的結果大於。
告訴用戶他實際上遇到超時錯誤時他沒有「結果」,這太糟糕了。
任何想法?
根據[PGSQL Docs](http://www.postgresql.org/docs/current/static/runtime-config-client.html)*不建議在postgresql.conf中設置statement_timeout,因爲它會影響所有會話。*也檢查此線程設置[此用戶級別的conf](http://stackoverflow.com/questions/24092463/psql-set-default-statement-timeout-as-a-user-in-postgres)。 10ms是不是太小? – Spidey
嗨@Nimesh,我將連接設置爲10ms的原因是因爲我需要強制超時來複制該錯誤,這與生產中不同。但我想知道爲什麼沒有顯示超時錯誤。相反,我獲得了0行的成功結果。 –