簡體   English   中英

C#OLEDB驅動程序未讀取空字符

[英]C# OLEDB driver not reading null character

我正在嘗試使用FoxPro OLEDB驅動程序通過ADO讀取dbf文件。 我可以很好地查詢,但是有些似乎無法通過特殊字符。 它們不是可打印的字符,因為單擊時會消失,但是通過OLEDB肯定與FoxPro中的字符不同。

例如,通過Visual FoxPro的以下字段:

在此處輸入圖片說明

通過OLEDB訪問時,顯示如下:

在此處輸入圖片說明

我將其縮小為第一個字符串包含ASCII代碼0(空)字符作為第十個字符的事實-這是有效的,但是我不希望刪除它,但是無論我嘗試什么,字符串都以9個字符結尾用ADO閱讀時。

您沒有向我們顯示任何代碼,並且圖像鏈接已損壞,我們被排除在猜測之外。 我多年來一直在使用C#的VFPOLEDB驅動程序,並且沒有這個問題。 我相信您正在嘗試描述C#端而非VFP端存在的問題。 在VFP中,即使char(0)也是有效字符。 但是在C#中(文檔誤導了IMO,但事實並非如此),字符串是ASCIIZ字符串,其中char(0)被接受為字符串的結尾。 這應該是你的問題。 您可以簡單地讀取為字節數組,而是將字段強制轉換為Blob。 就像是:

而不是像這樣的普通SQL:

select myField from myTable

這樣做並投射:

select cast(myField as w) as myField from myTable

編輯:圖像沒有損壞,但被我的ISP阻止了,請查明原因。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM