問題:ArcGIS Engine開發(fā)中柵格數(shù)據(jù)導入錯誤
在學習ArcGIS Engine開發(fā)過程中,我遇到了一個問題。當我在調(diào)試軟件的【數(shù)據(jù)庫工具】|【數(shù)據(jù)入庫】|【柵格數(shù)據(jù)導入】功能時,在本地電腦上成功配置了SQL Server和ArcSDE,并成功連接
在學習ArcGIS Engine開發(fā)過程中,我遇到了一個問題。當我在調(diào)試軟件的【數(shù)據(jù)庫工具】|【數(shù)據(jù)入庫】|【柵格數(shù)據(jù)導入】功能時,在本地電腦上成功配置了SQL Server和ArcSDE,并成功連接到數(shù)據(jù)庫。然而,當我嘗試導入柵格數(shù)據(jù)時,卻遇到了錯誤提示(圖):Underlying DBMS did not accept username/password。報錯行為()。
解決嘗試和失敗
我嘗試解決這個問題,首先檢查了后臺代碼,發(fā)現(xiàn)代碼中指定了默認密碼(圖),并未使用用戶在軟件界面中手動輸入的賬號和密碼。
問題產(chǎn)生原因
在進一步研究中,我發(fā)現(xiàn)ESRI對IPropertySet::GetProperty方法進行了設(shè)置:只能對IPropertySet::GetProperty寫入password,不能讀取password。
解決方法
為了解決這個問題,我采取了兩種方法:
- 刪除 "sde"語句。
- 或者刪除圖中的 ("password").ToString()語句。即不再指定IPropertySet::GetProperty的password的值,只指定server、user等屬性的值。不指定password的值,程序在運行的過程中自動彈出窗口提示用戶輸入密碼(圖)。
通過這種方式,我成功解決了柵格數(shù)據(jù)導入錯誤問題。