2011-04-17 84 views
1

我需要將記錄寫入C#中的DBF文件(它工作正常),但要求是當用戶打開生成的dbf文件時,記錄按照其中一個列。我已經通過簡單地將列設置爲主鍵來完成其他格式。但是,我無法創建主鍵,因爲我得到了錯誤(「不支持非dbc」)。有沒有其他方法可以實現「排序」?C#DBF文件默認排序

+0

我們不禁看到代碼。 – Hogan 2011-04-17 18:32:41

+1

沒有可顯示的代碼。我可以使用DBF文件,但似乎無法在空閒表上創建主鍵。如果有另一種方法來實現表格中的排序,我提出了一個問題。 – ST123 2011-04-17 18:37:15

+0

是否可以按照您希望他們看到的順序寫出記錄?即物理排序文件?或者,您是否可以將記錄附加到已定義密鑰的DBF? – 2011-04-17 18:50:50

回答

0

存儲在DBF或任何其他數據庫中的數據不是按順序存儲的,而是在檢索數據時使用索引和ORDER BY子句。所以,我只是擔心你的查詢檢索數據時,包含這樣...

SELECT * FROM whateverTable ORDER BY列1,Column8,Column20
(或其他列的關注)

然後,它們實際輸入的順序無關。

+0

我完全理解這一點,但我沒有檢索數據,客戶端是。它需要有一個默認的順序。 – ST123 2011-04-17 18:49:34

+0

就內部文件結構而言,DBF中的數據總是按添加記錄的順序存儲。如果您在沒有活動索引的情況下檢索它們,或者在Select-SQL語句中強制排序,它們將按照相同的順序返回。 – 2011-04-18 09:49:27

0

對於免費的DBF文件,您需要按照希望顯示的順序編寫記錄。

注:我知道你上面的評論說你正在這樣做,但這是答案。如果你不告訴我們和/或告訴我們你是如何寫出來的,我們無法進一步幫助。

0

表不在數據庫中(「自由表」的FoxPro命名)支持Candidate indexes

到主索引相似, 候選索引包含索引鍵 用於在每個記錄表和 禁止 字段或指定表 中的重複值用於生成索引鍵。