الطريقة الأولى:
1. إذا لم يتم تحديد اسم منطقي عند إرفاق قاعدة البيانات، فسيتم عرضه كـ "المسار الكامل بأحرف كبيرة" في SQL2005. على سبيل المثال، عند إرفاق ملفات قاعدة البيانات D:MyTest.mdf وD:MyTest.ldf بخادم SQL، إذا لم يتم تحديد اسم منطقي، فسيتم عرضها كـ "D:MYTEST.MDF" في SQL2005. في هذا الوقت، سلسلة اتصال C# هي "DataSource=dsName;AttatchDBFilename="D:MyTest.mdf";معرف المستخدم=id;Password=pw";
2. إذا تم تحديد اسم منطقي عند إرفاق قاعدة البيانات، فسيتم عرضه على أنه "اسم منطقي" في SQL2005. في هذا الوقت، تكون سلسلة الاتصال الخاصة بـ C# هي "DataSource=dsName;AttatchDBFilename="D:MyTest.mdf" ;الكتالوج الأولي =aa_LogicName;معرف المستخدم=المعرف;كلمة المرور=pw”;
3. لا يمكن تغيير اسم قاعدة البيانات المرفقة حسب الرغبة، وإلا فقد تحدث أخطاء بسهولة.
الطريقة الثانية:
string DbPath=System.Environment.CurrentDirectory +@"Demo_Data.MDF ";
string LogPath=System.Environment.CurrentDirectory +@"Demo_Log.LDF ";
string StrSql="exec sp_attach_db @dbname='supmark',@filename1='"+DbPath+"',@filename2='"+LogPath+"'";
string strcon = "Server = (local)؛ الأمان المتكامل = SSPI؛ قاعدة البيانات = الرئيسية"؛
SqlConnection cn=new SqlConnection(strcon);
SqlCommand cmd =new SqlCommand (StrSql,cn);
cn.Open();
cmd.ExecuteNonQuery();
cn.Close();
الطريقة الثالثة كود مفصل:
باستخدام النظام؛
باستخدام System.Collections.Generic؛
باستخدام System.Windows.Forms؛
باستخدام System.Data.SqlClient؛
باستخدام System.Data؛
باستخدام System.ServiceProcess؛
مساحة الاسم AdminZJC.DataBaseControl
{
/// <الملخص>
/// فئة التحكم في تشغيل قاعدة البيانات
/// </الملخص>
فئة عامة DataBaseControl
{
/// <الملخص>
/// سلسلة اتصال قاعدة البيانات
/// </الملخص>
سلسلة عامة ConnectionString؛
/// <الملخص>
///بيان عملية SQL/الإجراء المخزن
/// </الملخص>
سلسلة عامة StrSQL؛
/// <الملخص>
/// إنشاء كائن اتصال بقاعدة البيانات
/// </الملخص>
خاص SqlConnection كون؛
/// <الملخص>
/// إنشاء كائن تشغيل قاعدة بيانات جديد Comm
/// </الملخص>
خاص SqlCommand بالاتصال؛
/// <الملخص>
/// اسم قاعدة البيانات التي سيتم التشغيل عليها
/// </الملخص>
سلسلة عامة DataBaseName؛
/// <الملخص>
/// العنوان الكامل لملف قاعدة البيانات
/// </الملخص>
سلسلة عامة DataBase_MDF؛
/// <الملخص>
/// العنوان الكامل لملف سجل قاعدة البيانات
/// </الملخص>
سلسلة عامة DataBase_LDF؛
/// <الملخص>
/// اسم ملف النسخ الاحتياطي
/// </الملخص>
سلسلة عامة DataBaseOfBackupName؛
/// <الملخص>
/// مسار ملف النسخ الاحتياطي
/// </الملخص>
سلسلة عامة DataBaseOfBackupPath؛
/// <الملخص>
/// تنفيذ عمليات إنشاء/تعديل قواعد البيانات والجداول
/// </الملخص>
الفراغ العام DataBaseAndTableControl ()
{
يحاول
{
Conn = new SqlConnection(ConnectionString);
Conn.Open();
بالاتصال = جديد SqlCommand();
Comm.Connection = كون؛
CommandText = StrSQL;
CommandType = CommandType.Text;
Comm.ExecuteNonQuery();
messageBox.Show("عملية قاعدة البيانات ناجحة!"، "موجه المعلومات"،MessageBoxButtons.OK،MessageBoxIcon.Information);
}
قبض (استثناء على سبيل المثال)
{
MessageBox.Show(ex.Message, "Message Prompt",MessageBoxButtons.OK,MessageBoxIcon.Information);
}
أخيراً
{
Conn.Close();
}
}
/// <الملخص>
/// قاعدة البيانات المرفقة
/// </الملخص>
الفراغ العام AddDataBase ()
{
يحاول
{
Conn = new SqlConnection(ConnectionString);
Conn.Open();
بالاتصال = جديد SqlCommand();
Comm.Connection = كون؛
Comm.CommandText = "sp_attach_db";
Comm.Parameters.Add(new SqlParameter(@"dbname", SqlDbType.NVarChar));
Comm.Parameters[@"dbname"].Value = DataBaseName;
Comm.Parameters.Add(new SqlParameter(@"filename1"، SqlDbType.NVarChar));
Comm.Parameters[@"filename1"].Value = DataBase_MDF;
Comm.Parameters.Add(new SqlParameter(@"filename2"، SqlDbType.NVarChar));
Comm.Parameters[@"filename2"].Value = DataBase_LDF;
CommandType = CommandType.StoredProcedure;
Comm.ExecuteNonQuery();
messageBox.Show ("تم إرفاق قاعدة البيانات بنجاح"، "مطالبة المعلومات"، messageBoxButtons.OK، messageBoxIcon.Information)؛
}
قبض (استثناء على سبيل المثال)
{
MessageBox.Show(ex.Message, "Message Prompt",MessageBoxButtons.OK,MessageBoxIcon.Information);
}
أخيراً
{
Conn.Close();
}
}
/// <الملخص>
/// قاعدة بيانات منفصلة
/// </الملخص>
الفراغ العام حذف قاعدة البيانات ()
{
يحاول
{
Conn = new SqlConnection(ConnectionString);
Conn.Open();
بالاتصال = جديد SqlCommand();
Comm.Connection = كون؛
Comm.CommandText = @"sp_detach_db";
Comm.Parameters.Add(new SqlParameter(@"dbname", SqlDbType.NVarChar));
Comm.Parameters[@"dbname"].Value = DataBaseName;
CommandType = CommandType.StoredProcedure;
Comm.ExecuteNonQuery();
messageBox.Show("تم فصل قاعدة البيانات بنجاح"، "موجه المعلومات"، messageBoxButtons.OK، messageBoxIcon.Information);
}
قبض (استثناء على سبيل المثال)
{
MessageBox.Show(ex.Message, "Message Prompt",MessageBoxButtons.OK,MessageBoxIcon.Information);
}
أخيراً
{
Conn.Close();
}
}
/// <الملخص>
/// النسخ الاحتياطي لقاعدة البيانات
/// </الملخص>
BackupDataBase () الفراغ العام
{
يحاول
{
Conn = new SqlConnection(ConnectionString);
Conn.Open();
بالاتصال = جديد SqlCommand();
Comm.Connection = كون؛
Comm.CommandText = "استخدام رئيسي؛ قاعدة بيانات احتياطية @dbname إلى القرص = @backupname؛";
Comm.Parameters.Add(new SqlParameter(@"dbname", SqlDbType.NVarChar));
Comm.Parameters[@"dbname"].Value = DataBaseName;
Comm.Parameters.Add(new SqlParameter(@"backupname"، SqlDbType.NVarChar));
Comm.Parameters[@"backupname"].Value = @DataBaseOfBackupPath + @DataBaseOfBackupName;
CommandType = CommandType.Text;
Comm.ExecuteNonQuery();
messageBox.Show("نجح النسخ الاحتياطي لقاعدة البيانات"، "مطالبة المعلومات"، messageBoxButtons.OK، messageBoxIcon.Information)؛
}
قبض (استثناء على سبيل المثال)
{
MessageBox.Show(ex.Message, "Message Prompt",MessageBoxButtons.OK,MessageBoxIcon.Information);
}
أخيراً
{
Conn.Close();
}
}
/// <الملخص>
///استعادة قاعدة البيانات
/// </الملخص>
الفراغ العام ReplaceDataBase ()
{
يحاول
{
string BackupFile = @DataBaseOfBackupPath + @DataBaseOfBackupName;
Conn = new SqlConnection(ConnectionString);
Conn.Open();
بالاتصال = جديد SqlCommand();
Comm.Connection = كون؛
Comm.CommandText = "استخدام رئيسي؛ استعادة قاعدة البيانات @DataBaseName من القرص = @BackupFile مع الاستبدال؛";
Comm.Parameters.Add(new SqlParameter(@"DataBaseName"، SqlDbType.NVarChar));
Comm.Parameters[@"DataBaseName"].Value = DataBaseName;
Comm.Parameters.Add(new SqlParameter(@"BackupFile"، SqlDbType.NVarChar));
Comm.Parameters[@"BackupFile"].Value = BackupFile;
CommandType = CommandType.Text;
Comm.ExecuteNonQuery();
messageBox.Show("تمت استعادة قاعدة البيانات بنجاح"، "مطالبة المعلومات"، messageBoxButtons.OK، messageBoxIcon.Information)؛
}
قبض (استثناء على سبيل المثال)
{
MessageBox.Show(ex.Message, "Message Prompt",MessageBoxButtons.OK,MessageBoxIcon.Information);
}
أخيراً
{
Conn.Close();
}
}
}
}
/*
///مثال الاتصال:
#------------------------------------------------ - --استعادة قاعدة البيانات--------------------------------------------- -- ------------#
زر الفراغ الخاص0_Click(مرسل الكائن، EventArgs e)
{
DataBaseControl DBC = new DataBaseControl();
DBC.ConnectionString = "مصدر البيانات=(محلي);معرف المستخدم=sa;كلمة المرور=123456;الكتالوج الأولي=الرئيسي";
DBC.DataBaseName = "MyDatabase";
DBC.DataBaseOfBackupName = @"back.bak";
DBC.DataBaseOfBackupPath = @"D:Program FilesMicrosoft SQL ServerMSSQLData";
DBC.ReplaceDataBase();
}
#------------------------------------------------ - قاعدة بيانات إضافية ------------------------------------------------ - ----------#
زر الفراغ الخاص1_Click_1(مرسل الكائن، EventArgs e)
{
DataBaseControl DBC = new DataBaseControl();
DBC.ConnectionString = "مصدر البيانات=(محلي);معرف المستخدم=sa;كلمة المرور=123456;الكتالوج الأولي=الرئيسي";
DBC.DataBaseName = "MyDatabase";
DBC.DataBase_MDF = @"D:Program FilesMicrosoft SQL ServerMSSQLDataMyDatabase_Data.MDF";
DBC.DataBase_LDF = @"D:Program FilesMicrosoft SQL ServerMSSQLDataMyDatabase_Log.LDF";
DBC.AddDataBase();
}
#---------------------------------------- قاعدة البيانات الاحتياطية -------- ------------------------------------------------------------------ -- ---------#
زر الفراغ الخاص 2_Click (مرسل الكائن، EventArgs e)
{
DataBaseControl DBC = new DataBaseControl();
DBC.ConnectionString = "مصدر البيانات=(محلي);معرف المستخدم=sa;كلمة المرور=123456;الكتالوج الأولي=الرئيسي";
DBC.DataBaseName = "MyDatabase";
DBC.DataBaseOfBackupName = @"back.bak";
DBC.DataBaseOfBackupPath = @"D:Program FilesMicrosoft SQL ServerMSSQLData";
DBC.BackupDataBase();
}
#---------------------------------------------قاعدة بيانات منفصلة-- ----------------------------------------------- ---- --------#
زر الفراغ الخاص3_Click(مرسل الكائن، EventArgs e)
{
DataBaseControl DBC = new DataBaseControl();
DBC.ConnectionString = "مصدر البيانات=(محلي);معرف المستخدم=sa;كلمة المرور=123456;الكتالوج الأولي=الرئيسي";
DBC.DataBaseName = "MyDatabase";
DBC.DeleteDataBase();