PDA

View Full Version : سوال: نحوه اسکریپت گرفتن از یک دیتابیس توسط سی شارپ



Behnam6670
سه شنبه 19 فروردین 1393, 07:47 صبح
سلام
دوستان من تو پروژم میخوام از دیتابیسم که دارم ازش استفاده میکنم اسکریپت بگیرم و توسط اونو با اسم یه دیتابیس جدید ایجاد کنم
به بیان دیگه من میخوام از تو برنامه از یه دیتا بیس کپی بگیرم و یه دیتا بیس با نام جدید ولی با همون ساختار رو داشته باشم
لطفا راهنمایی کنید.ممنون

esafb52
سه شنبه 19 فروردین 1393, 08:21 صبح
من با برنامه sql pakgeer اگر اسمش رو اشتباه تایپ نکرده باشم کار میکنم هم میتونه اسکریپت بده بهت هم خودش یه فایل نصبی بهت میده

Behnam6670
سه شنبه 19 فروردین 1393, 09:39 صبح
من با برنامه sql pakgeer اگر اسمش رو اشتباه تایپ نکرده باشم کار میکنم هم میتونه اسکریپت بده بهت هم خودش یه فایل نصبی بهت میده

من میخوام تو برنامه با کدنویسی یه دیتابیس رو با همه Object هاش رو با یه اسم دیگه کپی کنم

kurdboy2175
سه شنبه 19 فروردین 1393, 10:42 صبح
ببین دوست من برای این کار اول باید بانک اطلاعاتیت رو دیاتچ کنی یعنی ارتباطش رو قطع کنی بعد میتونی ازش کپی بگیری بعد از این که ازتباطش قطع شد میتونی ازش کپی بگیری در غیر این صورت نمیتونی هیچ کاری باهاش انحام بدی

Behnam6670
شنبه 23 فروردین 1393, 07:05 صبح
ممنون از دوستان خودم نوشتمش کدشم میزارم که اگه کسی خواست استفاده کنه



using System.Threading;
.
.
.
InitializeComponent();

th = new Thread(new ThreadStart(CreatDB));
th.IsBackground = true;
.
.
.

private void btnCreatDB_Click(object sender, EventArgs e)
{

this.Cursor = Cursors.WaitCursor;

th.Start();
}
public void CreatDB()
{

try
{
ServerConnection conn = new ServerConnection(".", "UserName", "Password");
Server srv = new Server(conn);
Transfer trsfrDB = new Transfer(srv.Databases[db.Connection.Database]);


Database newDatbase = new Database(srv, dbName + Year);
newDatbase.Create();


ScriptingOptions options = new ScriptingOptions();
options.DriAll = true;
options.ClusteredIndexes = true;
options.Default = true;
// options.DriAll = true;
options.Indexes = true;
//options.IncludeHeaders = true;
//options.AppendToFile = false;
//options.ToFileOnly = true;
trsfrDB.Options = options;


trsfrDB.CopyAllObjects = true;
trsfrDB.CopyAllViews = true;
trsfrDB.CopyAllUsers = true;
//trsfrDB.CopySchema = true;
trsfrDB.CopyAllDefaults = true;
trsfrDB.CopyAllDatabaseTriggers = true;
trsfrDB.CopyAllUserDefinedTableTypes = true;
trsfrDB.CopyAllSchemas = true;
//Copy all user defined data types from source to destination
trsfrDB.CopyAllUserDefinedDataTypes = true;
//Copy all tables from source to destination
trsfrDB.CopyAllTables = true;
//Copy data of all source tables to destination tables
//It actually generates INSERT statement for destination
trsfrDB.CopyData = true;
//Copy all stored procedure from source to destination
trsfrDB.CopyAllStoredProcedures = true;
//specify the destination server name


trsfrDB.DestinationServer = srv.Name;
trsfrDB.DestinationLoginSecure = false;
trsfrDB.DestinationLogin = "UserName";
trsfrDB.DestinationPassword = "Password";
trsfrDB.DestinationDatabase = dbName + Year;
trsfrDB.TransferData();
}
catch (System.Exception ex)
{
MessageBox.Show(this, "ایجاد پایگاه داده جدید با خطا مواجه شده است.مجددا تلاش نمایید", "خطا درایجاد پایگاه داده جدید", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1, MessageBoxOptions.RightAlign);
}
finally
{
this.Cursor = Cursors.Arrow;

MessageBox.Show(this, "پایگاه داده مورد نظر با موفقیت ایجاد شد", "ایجاد پایگاه داده جدید", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1, MessageBoxOptions.RightAlign);
th.Abort();
}
}

us1234
شنبه 23 فروردین 1393, 10:18 صبح
کد های کلاس Transfer را بذارید .

نازنین زه
دوشنبه 19 بهمن 1394, 21:55 عصر
نحوه گرفتن اسکریپت از برنامه چطوریه؟:متفکر: