วิธีที่หนึ่ง:
1. หากไม่มีการระบุชื่อลอจิคัลเมื่อแนบฐานข้อมูล ชื่อนั้นจะแสดงเป็น "เส้นทางแบบเต็มเป็นตัวพิมพ์ใหญ่" ใน SQL2005 ตัวอย่างเช่น เมื่อแนบไฟล์ฐานข้อมูล D:MyTest.mdf และ D:MyTest.ldf กับเซิร์ฟเวอร์ SQL หากไม่มีการระบุชื่อลอจิคัล ไฟล์เหล่านั้นจะแสดงเป็น "D:MYTEST.MDF" บน SQL2005 ในขณะนี้ สตริงการเชื่อมต่อ C# คือ "DataSource=dsName;AttaatchDBFilename="D:MyTest.mdf";User ID=id;Password=pw";
2. หากมีการระบุชื่อลอจิคัลเมื่อแนบฐานข้อมูล ชื่อนั้นจะแสดงเป็น "ชื่อลอจิคัล" บน SQL2005 ในขณะนี้ สตริงการเชื่อมต่อของ C# คือ "DataSource=dsName;AttaatchDBFilename="D:MyTest.mdf" ;แค็ตตาล็อกเริ่มต้น =aa_LogicName;รหัสผู้ใช้=id;รหัสผ่าน=pw”;
3. ชื่อฐานข้อมูลที่แนบมาไม่สามารถเปลี่ยนแปลงได้ตามต้องการ มิฉะนั้น อาจเกิดข้อผิดพลาดได้ง่าย
วิธีที่สอง:
สตริง DbPath=System.Environment.CurrentDirectory +@"Demo_Data.MDF ";
สตริง LogPath=System.Environment.CurrentDirectory +@"Demo_Log.LDF ";
สตริง StrSql="exec sp_attach_db @dbname='supmark',@filename1='"+DbPath+"',@filename2='"+LogPath+"'";
string strcon="Server=(local);Integrated Security=SSPI;Database=master";
SqlConnection cn=การเชื่อมต่อ Sql ใหม่ (strcon);
SqlCommand cmd = SqlCommand ใหม่ (StrSql,cn);
cn.เปิด();
cmd.ExecuteNonQuery();
cn.ปิด();
วิธีที่ 3 รหัสรายละเอียด:
ใช้ระบบ;
ใช้ System.Collections.Generic;
โดยใช้ System.Windows.Forms;
โดยใช้ System.Data.SqlClient;
ใช้ System.Data;
โดยใช้ System.ServiceProcess;
เนมสเปซ AdminZJC.DataBaseControl
-
/// <สรุป>
/// ระดับการควบคุมการดำเนินการฐานข้อมูล
/// </สรุป>
DataBaseControl ระดับสาธารณะ
-
/// <สรุป>
/// สตริงการเชื่อมต่อฐานข้อมูล
/// </สรุป>
ConnectionString สตริงสาธารณะ;
/// <สรุป>
///คำสั่งการดำเนินการ SQL/ขั้นตอนการจัดเก็บ
/// </สรุป>
สตริงสาธารณะ StrSQL;
/// <สรุป>
/// สร้างอินสแตนซ์ของวัตถุการเชื่อมต่อฐานข้อมูล
/// </สรุป>
SqlConnection Conn ส่วนตัว;
/// <สรุป>
/// สร้างอินสแตนซ์อ็อบเจ็กต์การดำเนินการฐานข้อมูลใหม่ Comm
/// </สรุป>
คำสั่ง SqlCommand ส่วนตัว;
/// <สรุป>
/// ชื่อของฐานข้อมูลที่จะดำเนินการ
/// </สรุป>
สตริงสาธารณะ DataBaseName;
/// <สรุป>
/// ที่อยู่ไฟล์ฐานข้อมูลที่สมบูรณ์
/// </สรุป>
สตริงสาธารณะ DataBase_MDF;
/// <สรุป>
/// ที่อยู่ที่สมบูรณ์ของไฟล์บันทึกฐานข้อมูล
/// </สรุป>
สตริงสาธารณะ DataBase_LDF;
/// <สรุป>
/// ชื่อไฟล์สำรอง
/// </สรุป>
สตริงสาธารณะ DataBaseOfBackupName;
/// <สรุป>
/// เส้นทางไฟล์สำรอง
/// </สรุป>
สตริงสาธารณะ DataBaseOfBackupPath;
/// <สรุป>
/// ดำเนินการเพื่อสร้าง/แก้ไขฐานข้อมูลและตาราง
/// </สรุป>
โมฆะสาธารณะ DataBaseAndTableControl()
-
พยายาม
-
Conn = SqlConnection ใหม่ (ConnectionString);
Conn.เปิด();
Comm = SqlCommand ใหม่();
Comm.Connection = Conn;
Comm.CommandText = StrSQL;
Comm.CommandType = CommandType.Text;
Comm.ExecuteNonQuery();
MessageBox.Show("ฐานข้อมูลดำเนินการสำเร็จ!", "แจ้งข้อมูล", MessageBoxButtons.OK, MessageBoxIcon.Information);
-
catch (ข้อยกเว้น เช่น)
-
MessageBox.Show(เช่น Message, "Message prompt", MessageBoxButtons.OK, MessageBoxIcon.Information);
-
ในที่สุด
-
Conn.ปิด();
-
-
/// <สรุป>
/// ฐานข้อมูลที่แนบมา
/// </สรุป>
โมฆะสาธารณะ AddDataBase()
-
พยายาม
-
Conn = SqlConnection ใหม่ (ConnectionString);
Conn.เปิด();
Comm = SqlCommand ใหม่();
Comm.Connection = Conn;
Comm.CommandText = "sp_attach_db";
Comm.Parameters.Add(SqlParameter ใหม่(@"dbname", SqlDbType.NVarChar));
Comm.Parameters[@"dbname"].Value = DataBaseName;
Comm.Parameters.Add(SqlParameter ใหม่(@"filename1", SqlDbType.NVarChar));
Comm.Parameters[@"filename1"].Value = DataBase_MDF;
Comm.Parameters.Add(SqlParameter ใหม่(@"filename2", SqlDbType.NVarChar));
Comm.Parameters[@"filename2"].Value = DataBase_LDF;
Comm.CommandType = CommandType.StoredProcedure;
Comm.ExecuteNonQuery();
MessageBox.Show("แนบฐานข้อมูลเรียบร้อยแล้ว", "แจ้งข้อมูล", MessageBoxButtons.OK, MessageBoxIcon.Information);
-
catch (ข้อยกเว้น เช่น)
-
MessageBox.Show(เช่น Message, "Message prompt", MessageBoxButtons.OK, MessageBoxIcon.Information);
-
ในที่สุด
-
Conn.ปิด();
-
-
/// <สรุป>
/// แยกฐานข้อมูล
/// </สรุป>
โมฆะสาธารณะ DeleteDataBase()
-
พยายาม
-
Conn = SqlConnection ใหม่ (ConnectionString);
Conn.เปิด();
Comm = SqlCommand ใหม่();
Comm.Connection = Conn;
Comm.CommandText = @"sp_detach_db";
Comm.Parameters.Add(SqlParameter ใหม่(@"dbname", SqlDbType.NVarChar));
Comm.Parameters[@"dbname"].Value = DataBaseName;
Comm.CommandType = CommandType.StoredProcedure;
Comm.ExecuteNonQuery();
MessageBox.Show("การแยกฐานข้อมูลสำเร็จ", "แจ้งข้อมูล", MessageBoxButtons.OK, MessageBoxIcon.Information);
-
catch (ข้อยกเว้น เช่น)
-
MessageBox.Show(เช่น Message, "Message prompt", MessageBoxButtons.OK, MessageBoxIcon.Information);
-
ในที่สุด
-
Conn.ปิด();
-
-
/// <สรุป>
/// สำรองฐานข้อมูล
/// </สรุป>
โมฆะสาธารณะ BackupDataBase()
-
พยายาม
-
Conn = SqlConnection ใหม่ (ConnectionString);
Conn.เปิด();
Comm = SqlCommand ใหม่();
Comm.Connection = Conn;
Comm.CommandText = "ใช้ master; ฐานข้อมูลสำรอง @dbname ไปยังดิสก์ = @backupname;";
Comm.Parameters.Add(SqlParameter ใหม่(@"dbname", SqlDbType.NVarChar));
Comm.Parameters[@"dbname"].Value = DataBaseName;
Comm.Parameters.Add(SqlParameter ใหม่(@"ชื่อสำรอง", SqlDbType.NVarChar));
Comm.Parameters[@"backupname"].Value = @DataBaseOfBackupPath + @DataBaseOfBackupName;
Comm.CommandType = CommandType.Text;
Comm.ExecuteNonQuery();
MessageBox.Show("การสำรองข้อมูลฐานข้อมูลสำเร็จ", "แจ้งข้อมูล", MessageBoxButtons.OK, MessageBoxIcon.Information);
-
catch (ข้อยกเว้น เช่น)
-
MessageBox.Show(เช่น Message, "Message prompt", MessageBoxButtons.OK, MessageBoxIcon.Information);
-
ในที่สุด
-
Conn.ปิด();
-
-
/// <สรุป>
/// กู้คืนฐานข้อมูล
/// </สรุป>
โมฆะสาธารณะแทนที่DataBase()
-
พยายาม
-
สตริง BackupFile = @DataBaseOfBackupPath + @DataBaseOfBackupName;
Conn = SqlConnection ใหม่ (ConnectionString);
Conn.เปิด();
Comm = SqlCommand ใหม่();
Comm.Connection = Conn;
Comm.CommandText = "ใช้ master; กู้คืนฐานข้อมูล @DataBaseName จากดิสก์ = @BackupFile พร้อมการแทนที่;";
Comm.Parameters.Add(SqlParameter ใหม่(@"DataBaseName", SqlDbType.NVarChar));
Comm.Parameters[@"DataBaseName"].Value = DataBaseName;
Comm.Parameters.Add(SqlParameter ใหม่(@"BackupFile", SqlDbType.NVarChar));
Comm.Parameters[@"BackupFile"].Value = BackupFile;
Comm.CommandType = CommandType.Text;
Comm.ExecuteNonQuery();
MessageBox.Show("กู้คืนฐานข้อมูลสำเร็จ", "แจ้งข้อมูล", MessageBoxButtons.OK, MessageBoxIcon.Information);
-
catch (ข้อยกเว้น เช่น)
-
MessageBox.Show(เช่น Message, "Message prompt", MessageBoxButtons.OK, MessageBoxIcon.Information);
-
ในที่สุด
-
Conn.ปิด();
-
-
-
-
-
/// ตัวอย่างการโทร:
#------------------------------------------------ - --เรียกคืนฐานข้อมูล-------------------------------------------------- --------------#
โมฆะส่วนตัว button0_Click (ผู้ส่งวัตถุ EventArgs e)
-
DataBaseControl DBC = DataBaseControl ใหม่ ();
DBC.ConnectionString = "แหล่งข้อมูล=(ท้องถิ่น);รหัสผู้ใช้=sa;รหัสผ่าน=123456; แค็ตตาล็อกเริ่มต้น=ต้นแบบ";
DBC.DataBaseName = "ฐานข้อมูลของฉัน";
DBC.DataBaseOfBackupName = @"back.bak";
DBC.DataBaseOfBackupPath = @"D:Program FilesMicrosoft SQL ServerMSSQLData";
DBC.ReplaceDataBase();
-
#------------------------------------------------ - ฐานข้อมูลเพิ่มเติม------------------------------------------------ - ----------#
โมฆะส่วนตัว button1_Click_1 (ผู้ส่งวัตถุ EventArgs e)
-
DataBaseControl DBC = DataBaseControl ใหม่ ();
DBC.ConnectionString = "แหล่งข้อมูล=(ท้องถิ่น);รหัสผู้ใช้=sa;รหัสผ่าน=123456; แค็ตตาล็อกเริ่มต้น=ต้นแบบ";
DBC.DataBaseName = "ฐานข้อมูลของฉัน";
DBC.DataBase_MDF = @"D:Program FilesMicrosoft SQL ServerMSSQLDataMyDatabase_Data.MDF";
DBC.DataBase_LDF = @"D:Program FilesMicrosoft SQL ServerMSSQLDataMyDatabase_Log.LDF";
DBC.AddDataBase();
-
#-------------------------------------------- ฐานข้อมูลสำรอง------- -------------------------------------------------- -- ---------#
โมฆะส่วนตัว button2_Click (ผู้ส่งวัตถุ EventArgs e)
-
DataBaseControl DBC = DataBaseControl ใหม่ ();
DBC.ConnectionString = "แหล่งข้อมูล=(ท้องถิ่น);รหัสผู้ใช้=sa;รหัสผ่าน=123456; แค็ตตาล็อกเริ่มต้น=ต้นแบบ";
DBC.DataBaseName = "ฐานข้อมูลของฉัน";
DBC.DataBaseOfBackupName = @"back.bak";
DBC.DataBaseOfBackupPath = @"D:Program FilesMicrosoft SQL ServerMSSQLData";
DBC.BackupDataBase();
-
#------------------------------------------------------------ ฐานข้อมูลแยก-- ---- -------------------------------------------------- ---- --------#
โมฆะส่วนตัว button3_Click (ผู้ส่งวัตถุ EventArgs e)
-
DataBaseControl DBC = DataBaseControl ใหม่ ();
DBC.ConnectionString = "แหล่งข้อมูล=(ท้องถิ่น);รหัสผู้ใช้=sa;รหัสผ่าน=123456; แค็ตตาล็อกเริ่มต้น=ต้นแบบ";
DBC.DataBaseName = "ฐานข้อมูลของฉัน";
DBC.DeleteDataBase();