Мне нужно настроить оконное приложение, поэтому мне нужно создать базу данных на клиентской машине. Поэтому я решил, что создам его, используя файл .sql
, который я добавлю в свой файл ресурсов. Поскольку есть возможность выполнить этот файл при первом запуске моей программы, которая создаст мою базу данных.
Но, как предложил один из моих друзей, этот файл .sql
следует запускать из командной строки SQL Server Express.
Я много искал, как выполнить файл .sql
из кода С# в командной строке SQL Server 2008 Express.
я уже читал эти вопросы
Код:
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:\Users\Kiran\Desktop\rahhul\Bookster_28\HotelReservationSystem\HotelReservationSystem\bin\Debug\HotelReservationScript.sql»
ОТРЕДАКТИРОВАНО:
Я также пробовал это, но я получаю ту же ошибку
FileInfo file = new FileInfo(Path.Combine(Path.GetDirectoryName(Environment.GetCommandLineArgs().ToString()), "HotelReservationScript.sql"));