سلام مجدد
خواهش میکنم، همیقدر که پایه کار هستید، بر سرم منت گذاشتید.
برنامه برپایه فریم ورک 2 و ویندوز اپلیکیشن هست.
یه سوال برام پیش امده، مگه این temp که میفرمایید ، جزئی از پوشه های درایو ویندوز نیست؟ قاعدتا جواب مثبته و temp درون درایوی که ویندوز در آن نصب شده هست وجو دارد که معمولا این درایو، درایو سی می باشد.
پس اگه درایو سی ، 40 گیگ فضا داره ، پس temp هم فضا دارد، پس اون فرمولی که در بالا فرمودید ، بایستی همچنان پابرجا باشد.
پس اگه بحث Stream مشکل داشته باشه ، پس استفاده از Job هم ، باید همین مشکل رو داشته باشه؟ (پس این دفعه که میرم،بازم ضایع میشم)
این کلاسی هست که از اون استفاده میکنم.
public class Database{
public static readonly string DBName = "Heiat_DB"; public static readonly string DBName2 = "Heiat_Images_DB"; public static string cnnStr = "Data Source=TAJMIOSTAN;Initial Catalog=Heiat_DB;User ID=sa;password=abbasinaft";
public static string ConnectionString { get { return cnnStr; } set { cnnStr = value; con = new SqlConnection(cnnStr); cmd = new SqlCommand("", con); } }
private static SqlConnection con = new SqlConnection(cnnStr); private static SqlCommand cmd = new SqlCommand("", con);
/// <summary> /// /// </summary> public static SqlParameterCollection Parameters { get { return cmd.Parameters; } }
public static DataTable RunCommand(string command) { try { command = command.ToString().Replace('ي', 'ی').Replace('ك', 'ک'); cmd.CommandText = command; cmd.CommandType = CommandType.Text; con.Open(); DataTable dt = new DataTable(); dt.Load(cmd.ExecuteReader()); return dt; } finally { Parameters.Clear(); con.Close(); } }
public static DataTable RunProcedure(string procedure) { try { con.Open(); cmd.CommandText = procedure; cmd.CommandType = CommandType.StoredProcedure; DataTable dt = new DataTable(); dt.Load(cmd.ExecuteReader()); return dt; } finally { Parameters.Clear(); con.Close(); } }
public static void AddParameter(string name, object value) { value = value.ToString().Replace('ي', 'ی').Replace('ك', 'ک').Trim(); Parameters.AddWithValue(name, value); }
public static void AddParameter(string name, object value, bool nullAble, bool forienKey) { if (nullAble && (value == null || (forienKey && double.Parse(value.ToString()) < 1))) return; value = value.ToString().Replace('ي', 'ی').Replace('ك', 'ک').Trim(); Parameters.AddWithValue(name, value); }
public static void ClearParameters() { cmd.Parameters.Clear(); }
public static void BackupDB(string DatabaseName, string Destination) { RunCommand("backup database [" + DatabaseName + "] to disk = N'" + Destination + "' with format"); } public static void RestoreDB(string BackupSource, string DatabaseName) { if (!DatabaseName.Contains(@"\")) { RunCommand("ALTER DATABASE [" + DatabaseName + "] SET Single_User WITH Rollback Immediate"); } RunCommand("USE [master]; RESTORE DATABASE [" + DatabaseName + "] FROM DISK = N'" + BackupSource + " ' WITH FILE = 1, NOUNLOAD, REPLACE, STATS = 10"); if (!DatabaseName.Contains(@"\")) { RunCommand("ALTER DATABASE [" + DatabaseName + "] SET Multi_User"); } }}
در داخل دکمه هم در رخداد کلیک تابع Database.BackupDB رو استفاده میکنم.