2013-08-19 18 views
0

全部,在C#中的會話之間保持數據

我有一個測試程序,將序列化一些研究會議的測試主題。我將在不同的時間運行程序,所以我需要這些數據來堅持。這將是一個001格式的簡單ID號碼(兩個前導零直到10,一個前導零直到100),最大值爲999.我如何在C#中完成此操作?理想情況下,它啓動,讀取持續數據,然後開始註冊最新數量的新測試科目。這個數字將被用作主鍵來識別數據庫中的測試對象。我以前從來沒有做過這樣的事情,所以我對我應該做的事情一無所知。

編輯:

我可能應該澄清...有多個數據庫。一個是本地SQLite文件,其中包含測試主題的試用數據(每個測試的具體數據)。另一個是更大的MySQL數據庫,它包含更多的一般信息(關於與研究相關的測試主題的內容)。 MySQL數據庫是遠程的,應用程序中的數據不會直接提交給它......這是由另一個接收SQLite文件並將該數據提交給MySQL數據庫的應用程序處理的。測試環境是可變的,可能沒有連接到MySQL數據庫。因此,不管是否存在與MySQL數據庫的連接狀態,每次啓動程序時都需要ID號,因此它不是一個可行的候選人。 SQLite文件是在程序執行後從文本文件(csv)寫入的,並且需要包含要用作主鍵的ID號,所以SQLite數據庫可能不是存儲持久數據的最佳候選者。對不起,我以前沒有解釋過......現在還在早期:P

+0

「數據庫中的測試對象」 - 所以你已經有了一個數據庫?那麼爲什麼不只是''SELECT MAX([PrimaryKeyColumn])從[yourTable]「+ 1'換新的呢?如果你想寫回來,記住:'ToString(「000」)'^ _^ – Corak

+0

使用自動生成的主鍵設置數據庫表(這取決於數據庫的方式),然後插入新的記錄進去。您不必擔心獲取最後一個ID來生成下一個ID。如果你只是將記錄插入到數據庫中,那麼使用其他建議應該沒問題,但是如果多人插入記錄,就會遇到問題。 –

+0

我可能應該澄清......有多個數據庫。一個是本地SQLite文件,其中包含測試主題的試用數據(每個測試的具體數據)。另一個是更大的MySQL數據庫,它包含更多的一般信息(關於與研究相關的測試主題的內容)。 MySQL數據庫是遠程的,應用程序中的數據不會直接提交給它......這是由另一個應用程序處理的。測試環境是可變的,可能沒有連接到MySQL數據庫。 – nerdenator

回答

0

如果這些數字在數據庫中用作索引,爲什麼不檢查數據庫中的下一個數字?如果已經註冊了5個主題,下次只需檢查數據庫,獲取索引的最大值併爲下一個主題添加1。一旦插入該主題,您可以再次添加1。