我有幾個腳本需要在我的數據庫上運行。所以我有幾個問題。通過腳本創建表以及如何運行腳本
當打開到數據庫的連接時,我只需使用Connection,CommandText,CommandType和CommandTimeout。
第一個問題 - 有誰知道如果通過這種方法,我可以創建permantent表,而不是臨時表?
其次 - 我將如何運行此文件?我可以將文件設置爲參數,並在查詢中運行參數?
感謝
我有幾個腳本需要在我的數據庫上運行。所以我有幾個問題。通過腳本創建表以及如何運行腳本
當打開到數據庫的連接時,我只需使用Connection,CommandText,CommandType和CommandTimeout。
第一個問題 - 有誰知道如果通過這種方法,我可以創建permantent表,而不是臨時表?
其次 - 我將如何運行此文件?我可以將文件設置爲參數,並在查詢中運行參數?
感謝
您可以在.NET SQL連接中執行任何操作,您可以在SQL腳本中執行任何操作。就「運行文件」而言,您需要將文件文本加載到內存中,並將加載的文本作爲單個命令執行。
我們在應用中做類似的事情。我們的數據庫腳本存儲在SQL腳本中。我們將每個文件從磁盤順序加載到內存中並執行。
在C# -
您可以創建永久和臨時表這種方式。
將該腳本作爲命令對象的CommandText運行。
感謝這個答覆,說我需要不斷更新的文件,所以我有文件的鏈接,而不是實際的文件,我只是通過參數運行它,還是有另一種方式? – Vibralux 2010-08-23 13:23:56
例如,從MSDN:如何設置參數的查詢,
private static void UpdateDemographics(Int32 customerID,
string demoXml, string connectionString)
{
string commandText = "UPDATE Sales.Store SET Demographics = @demographics "
+ "WHERE CustomerID = @ID;";
using (SqlConnection connection = new SqlConnection(connectionString))
{
SqlCommand command = new SqlCommand(commandText, connection);
command.Parameters.Add("@ID", SqlDbType.Int);
command.Parameters["@ID"].Value = customerID;
command.Parameters.AddWithValue("@demographics", demoXml);
try
{
connection.Open();
Int32 rowsAffected = command.ExecuteNonQuery();
Console.WriteLine("RowsAffected: {0}", rowsAffected);
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
}
如何將文本加載到內存中,類似於使用(StreamReader sr - New StreamReader(「fileName」))' – Vibralux 2010-08-23 13:41:02
準確地說。或者使用File.ReadAllLines()。完整閱讀文件,然後執行文本。爲了更好地適應其他應用程序,請使用FileAccess.read和FileShare.Read打開FileStream,然後在FileStream上打開StreamReader。 – 2010-08-23 13:59:34