2013-12-12 59 views
2

我正在創建一個文本文件,其中將包含SQL代碼以創建數據庫及其表,並在稍後修改相同的數據庫。如何讀取包含SQL代碼的文本文件並執行它

將通過用戶安裝的應用程序讀取文本文件,並在運行時讀取文本文件並創建或修改數據庫(如果已應用任何更改)。

當然,SQL文本文件應該有所驗證,以免重複表等。

我沒有要求任何代碼,只是我應該遵循的具體路徑,以使這種情況發生。

感謝您的輸入。

+1

認真嗎?爲什麼甚至投票呢?這是一個合法的問題 – user1676874

+0

更好的選擇是一個XML文件。這樣你可以在繼續之前閱讀某些元素。 – OneFineDay

+0

你可以做什麼?如果它工作,我會嘗試一下,爲什麼它比普通的txt文件更好? – user1676874

回答

2

我會通過SQL腳本來檢查數據庫是否存在tables/views/SPs/etc。在創建它們之前,我會通過ADO.NET在VB應用程序中執行它。我會將它與應用程序一起發佈到子目錄中。閱讀文本文件或通過ADO.NET執行SQL字符串並不重要。

我會在數據庫中有一個VERSION表來標識哪個數據庫模式版本被安裝,當我發佈修改數據庫的升級腳本時,我會讓他們更新VERSION表。你發佈的第一個版本是1.0,隨後適當增加。

所有SQL對象創建/檢測/版本控制邏輯都將在SQL中。這是迄今爲止在客戶端上完成它的最簡單的方法,它是在發佈之前開發和測試的最簡單的事情(MS SQL Management Studio是天賜之物),最簡單的事情是與之前的版本進行比較,存儲在源代碼控制中,等等。

順便說一下,我也會讓我的應用程序嚴格通過存儲過程與數據庫進行交互,並且絕對不會給任何連接的字符串提供SQL。所有傳遞給SQL的參數都應該通過ADO.NET的SqlParameter機制提供,這非常酷,因爲它提供了乾淨可讀的代碼,併爲您清理了所有參數。有沒有使用一個數據庫應用程序崩潰撇號?他們沒有清理他們的參數。

0

使用MS SQL Server Management Studio中以完善自己的腳本: http://technet.microsoft.com/en-us/library/ms174173.aspx

SSMS自帶的服務器安裝和可用於SQL Express的版本。 (它不需要在客戶端PC,但它可能對調試是有用的。

這很可能會是一個低安全環境,每個用戶都將擁有數據庫的完全控制。

因爲有很非常簡單的閱讀文本文件,並運行對DB只得到一個連接併發送腳本:

    Dim cmd As New Data.SqlClient.SqlCommand 
        con.Open() 
        cmd.CommandText = SQL 
        cmd.Connection = con 
        cmd.ExecuteNonQuery() 

您可能想要使用虛擬機開發計算機上,因爲它可以讓你快速測試你的腳本和代碼,並返回到基線狀態。

0

如果你問是How do I read a text file and make the results execute in SQL

我會用StreamReader閱讀文本文件轉換成string變量。

讀入後,繼續打開與數據庫的連接,然後執行ExecuteNonQuery,其值爲string變量。

相關問題