クライアントアプリケーションでデータベースを作成する必要があるため、ウィンドウアプリケーションのセットアップを行う必要があります。そこで私はリソースファイルに追加する.sql
ファイルを使用して作成することに決めました。私のデータベースを作成する私のプログラムの最初の実行時にそのファイルを実行するオプションがあるので。.sqlファイルを実行するためにC#を使用してSQL Server Expressコマンドラインを呼び出す方法
私の友人の一人として、.sql
ファイルはSQL Server Expressのコマンドラインから実行する必要があります。
SQL Server 2008 Expressコマンドラインで.sql
ファイルをc#コードから実行する方法をたくさん検索しました。
Iすでにこれらの質問を読んで
コード:
FileInfo file = new FileInfo(Path.Combine(Path.GetDirectoryName(Application.ExecutablePath), "HotelReservationScript.sql"));
StreamReader fileRead = file.OpenText();
string script = fileRead.ReadToEnd();
fileRead.Close();
string strConn = System.Configuration.ConfigurationManager.ConnectionStrings["MasterConnectionString"].ConnectionString;
SqlConnection con = new SqlConnection(strConn);
con.Open();
ExecuteScript(con, script);
protected virtual void ExecuteScript(SqlConnection connection, string script)
{
string[] commandTextArray = System.Text.RegularExpressions.Regex.Split(script, "\r\n[\t ]*GO");
SqlCommand _cmd = new SqlCommand(String.Empty, connection);
foreach (string commandText in commandTextArray)
{
if (commandText.Trim() == string.Empty)
continue;
if ((commandText.Length >= 3) && (commandText.Substring(0, 3).ToUpper() == "USE"))
{
throw new Exception("Create script contains USE statement. Please provide non database specific create scripts!");
}
_cmd.CommandText = commandText;
_cmd.ExecuteNonQuery();
}
}
エラーメッセージ:
はファイル「Cが見つかりませんでした:\ユーザー\キラン\デスクトップ\ rahhu L \ Bookster_28 \ HotelReservationSystem \ HotelReservationSystem \ binに\デバッグ\ HotelReservationScript.sql」
EDITED:
また、私はこれを試してみましたが、私は
FileInfo file = new FileInfo(Path.Combine(Path.GetDirectoryName(Environment.GetCommandLineArgs().ToString()), "HotelReservationScript.sql"));
あなたが提供したリンクで行われるのはなぜですか? –
このようなことを意味しますか? http://forums.learnsqlserver.com/sqlservertopic53.aspx –
エラーメッセージをもう一度見てください。ファイルが存在しないか、またはファイルが見つかりません。存在していることが確かな場合は、そのフォルダ内のプログラムを見つけるための権限がプログラムに含まれていることを確認してください。これはc#またはsqlの問題ではありません – deltree