Bazen programlarımızda sql scriptleri program üzerinden çalıştırmaya ihtiyac duyabiliriz. Bu durumda fiziksel bir yol üzerinde bulunan sql scriptimizi program içerisinden okuyarak ve metodumuz ile çalıştırarak işlemi gerçekleştirebiliriz.
okuma işlemimizi fileinfo sınıfını kullanarak aşağıdaki şekilde scripti string bir değişken içerisine aktararak gerçekleştiriyoruz. burada scriptimizin bulunduğu yolu veriyoruz ve ReadToEnd ile okunmasını sağlıyoruz.
FileInfo file = new FileInfo("C:\\Script.sql");
string scripttext = file.OpenText().ReadToEnd();
Metodumuz
protected virtual void ExecuteScript(SqlConnection connection, string script)
{
string[] commandTextArray = script.Split(new string[] { "GO" }, StringSplitOptions.RemoveEmptyEntries);
connection.Open();
foreach (string commandText in commandTextArray)
{
if (commandText.Trim() == string.Empty) continue;
SqlCommand command = new SqlCommand(commandText, connection);
command.ExecuteNonQuery();
}
connection.Close();
}
Okuma işlemi gerçekleştirildikten sonra metodumuzu kullanabiliriz.
ExecuteScript(baglanti, scripttext);
Not: bağlantımız örnek olarak sqlconnection baglanti=new sqlconnection(); şeklinde tanımlanmış bir bağlantı olabilir. Kolay gelsin...