我已經創建了一個空的數據庫。我需要在這個空的數據庫上運行腳本。從網站 到目前爲止,我已經找到代碼:在c#中的sql文件的現有數據庫上運行一個腳本#
public bool RunScript()
{
try
{
SqlConnection con = new SqlConnection(@"Data Source=DESKTOP-PCEOPRM\SQLEXPRESS;Initial Catalog=" + DbName + ";Integrated Security=True");
con.Open();
string script = File.ReadAllText(@"C:\inetpub\wwwroot\MetisTemplateDBScript\MetisEmptyDBScript.sql");
IEnumerable<string> commandStrings = Regex.Split(script, @"^\s*GO\s*$",
RegexOptions.Multiline | RegexOptions.IgnoreCase);
foreach (string commandString in commandStrings)
{
if (commandString.Trim() != "")
{
using (var command = new SqlCommand(commandString, con))
{
command.ExecuteNonQuery();
}
}
}
con.Close();
return true;
}catch(Exception exc)
{
return false;
}
}
但是當我運行它,它會拋出一些例外由於「\ n」,「\ r」或簡單的斜線等 有一些從sql文件運行大型腳本的正確方法? 我的文件還包含GO語句。
這不是一個重複的問題,因爲它有兩件事1)去命令和2)轉義字符。
謝謝!
你得到了什麼錯誤? –
而不是發佈此代碼,顯示SQL查詢將幫助我想。因爲在這段代碼中沒有任何「\ n,\ r」。 –
它顯示字符串中的語法錯誤..我的字符串有轉義字符或\ n,\ r,\ t。我也用簡單的空間替換了它們,但它不起作用。問題是從文件中讀取。我怎樣才能擺脫這些逃脫的東西? – Umar