
Use new settings (ConvertTo and ExecutableMode) New Settings Use new setting (PDF Folder) Use and Control new settings
60 lines
1.8 KiB
C#
60 lines
1.8 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Text;
|
|
using System.Data.Sql;
|
|
using System.Data.SqlClient;
|
|
// Add .Net Reference Microsoft.SqlServer.ConnectionInfo
|
|
using Microsoft.SqlServer.Management.Common;
|
|
// Add .Net Reference Microsoft.SqlServer.Smo
|
|
using Microsoft.SqlServer.Management.Smo;
|
|
|
|
namespace DataLoader
|
|
{
|
|
public delegate void SQLScriptRunnerEvent(object sender, SqlInfoMessageEventArgs args);
|
|
public class SQLScriptRunner
|
|
{
|
|
public event SQLScriptRunnerEvent InfoMessage;
|
|
public void OnInfoMessage(object sender, SqlInfoMessageEventArgs args)
|
|
{
|
|
if (InfoMessage != null) InfoMessage(sender, args);
|
|
}
|
|
private string _Script;
|
|
public string Script
|
|
{
|
|
get { return _Script; }
|
|
set { _Script = value; }
|
|
}
|
|
private string _ConnectionString;
|
|
public string ConnectionString
|
|
{
|
|
get { return _ConnectionString; }
|
|
set { _ConnectionString = value; }
|
|
}
|
|
public SQLScriptRunner(string script, string connectionString)
|
|
{
|
|
_Script = script;
|
|
_ConnectionString = connectionString;
|
|
}
|
|
public SQLScriptRunner(string dbName, string backupFolder, string connectionString, DateTime dateTime, string suffix)
|
|
{
|
|
_Script = string.Format("Backup database [{0}] to disk = '{1}\\{0}_{2}{3}.BAK'\r\n" +
|
|
"GO\r\nPRINT '{0} backed up to {1}\\{0}_{2}{3}.BAK'",
|
|
dbName, backupFolder, dateTime.ToString("yyyyMMdd_HHmm"),suffix);
|
|
_ConnectionString = connectionString;
|
|
}
|
|
public void Run()
|
|
{
|
|
SqlConnection cn = new SqlConnection(ConnectionString);
|
|
cn.Open();
|
|
cn.InfoMessage += new SqlInfoMessageEventHandler(cn_InfoMessage);
|
|
Server srv = new Server(new ServerConnection(cn));
|
|
srv.ConnectionContext.ExecuteNonQuery(Script);
|
|
cn.Close();
|
|
}
|
|
void cn_InfoMessage(object sender, SqlInfoMessageEventArgs e)
|
|
{
|
|
OnInfoMessage(sender, e);
|
|
}
|
|
}
|
|
}
|