2011-06-13 86 views
2

我以編程方式創建SQL Server CE數據庫(不使用實體或LINQ)。目前我正在將SQL語句嵌入到源代碼中,但如果可能的話,我想避免這種情況。SQL Server CE +外部SQL文件

有沒有一種方法可以簡單地擁有一個外部.sql文件,我可以使用SQL Server CE類讀取和執行?

編輯的清晰度 **

我的工作,前提是有一些的SQL Server CE類,只會讓我執行.sql文件的方法。所以像:command.executeSqlFile(文件名)。

原因是我正在構建一個測試應用程序,其中sql server ce數據庫將需要在整個應用程序的使用過程中創建並重新創建。我真的不希望硬編碼的SQL - 這將使它更容易,我只是有一個外部.sql文件:

... 
CREATE TABLE TEST(col1 int, col2 int, col3 int); 
INSERT INTO test (col1,col2,col3) VALUES (11, 22, 33); 
... 

同樣,我可以很容易地與IO類閱讀,只需想知道是否有更乾淨的方法(只使用System.Data & System.Data.SqlServerCE類)。

謝謝!

+0

如果你可以餵它硬編碼的字符串,那麼你可以餵它的字符串從文本文件中讀取相同的方式,不是嗎? (或者我錯過了什麼嗎?) – Rup 2011-06-13 16:48:21

+0

是否有理由不能預先創建.SDF文件並將其包含在項目中? – 2011-06-13 17:45:08

+0

我絕對可以這樣做,但我希望有一個ado.net方法或類允許我簡單地使用.sql文件而不是涉及IO類。 – bambino 2011-06-13 23:23:02

回答

0

由於Rup在評論中提到,您應該能夠從您創建的文本文件中讀取數據。您可以通過多種方式來完成此操作,包括每個.sql語句的單獨文件或一個大文件。

我會提醒的是,這可能也是一個安全風險。有人可以很容易地修改這些文件,並對你的數據庫做惡意的事情。請小心不要在這些文件中以純文本形式存儲憑證。您可能需要考慮加密您的外部數據文件。

0

或者您可以簡單地創建一個單獨的CE文件,其中包含一個SQL語句表,可以在應用程序內甚至單獨的一個表中輕鬆維護該表。通過這種方式,您可以打開語句數據庫,調用所需的「過程」,拉取文本,關閉它,打開真實的數據庫並使用第一個查詢的結果在真實數據庫上執行。當然,你將被限制在每場4000個字符,但這本身就很不錯。如果你需要更多,將幾個結合在一起。