空のデータベースを作成しました。この空のデータベースでスクリプトを実行する必要があります。 これまでのところ、私はウェブサイトからコードを発見した: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文も含まれています。
2つのことがあるので重複した質問ではありません。1)Goコマンドと2)エスケープ文字。
ありがとうございます。
どのようなエラーがありますか?このコードを投稿するのではなく –
と表示され、SQLクエリーが表示されていると思います。このコードには "\ n、\ r"が存在しないためです。 –
これは文字列に構文エラーを表示します。私の文字列にはエスケープ文字または\ n、\ r、\ tがあります。私もシンプルなスペースで置き換えましたが、うまくいきませんでした。問題はファイルからの読み込みです。どのように私はこれらの脱出物を取り除くことができますか? – Umar