YasserDivaR
یک شنبه 15 مرداد 1396, 21:07 عصر
سلام بر اساتید محترم
ببینید من یه برنامه نوشتم که میاد اسکریپت دیتابیس رو توی سی شارپ ران میکنه و دیتابیس ساخته میشه تا اینجاش و مشکلی ندارم اما مشکلی که دارم اینه که میخوام کاربر محل ذخیره دیتابیس رو توی اسکریپت تغییر بده منتها با کد
این کد اسکریپت هست که قراره تغییر کنه
( NAME = N'db_test_60', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\db_test_6 0.mdf' , SIZE = 3072KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB )
LOG ON
( NAME = N'db_test_60_log', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\db_test_6 0_log.ldf' , SIZE = 4672KB , MAXSIZE = 2048GB , FILEGROWTH = 10%)
با این خط کد تونستم آدرس محل رو تغییر بدم
Regex x = new Regex("(FILENAME = N')(.*?)(' , SIZE =)");
string s = richTextBox1.Text;
string repl = textBox1.Text;
string Result = x.Replace(s, "$1" + repl + "$3");
richTextBox2.Text = Result;
ریچ تکست شامل کلیه متن های اسکریپته و تکست باکس هم آدرسی که کاربر دستی وارد میکنه
اما مشکل من اینه که اسم دیتابیس و اسم فایل لاگ رو نمیتونم کاری کنم یعنی با کد بالا اسم فایل لاگ و دیتابیس جایگزین ادرسی میشه که کاربر وارد کرده چطوری میتونم کاری کنم که اسم دیتابیس و فایل لاگ تغییر نکنه و ثابت بمونه و فقط آدرس پوشه عوض بشه
C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA
فرض رو هم براین بزاریم که ممکنه آدرس ها یکسان نباشه از من اینه پیشفرض یه کاربر دیگه میاد دیتابیس رو تو یه درایو دیگه میسازه چطوری میشه چنین کارب کرد
ببینید من یه برنامه نوشتم که میاد اسکریپت دیتابیس رو توی سی شارپ ران میکنه و دیتابیس ساخته میشه تا اینجاش و مشکلی ندارم اما مشکلی که دارم اینه که میخوام کاربر محل ذخیره دیتابیس رو توی اسکریپت تغییر بده منتها با کد
این کد اسکریپت هست که قراره تغییر کنه
( NAME = N'db_test_60', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\db_test_6 0.mdf' , SIZE = 3072KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB )
LOG ON
( NAME = N'db_test_60_log', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\db_test_6 0_log.ldf' , SIZE = 4672KB , MAXSIZE = 2048GB , FILEGROWTH = 10%)
با این خط کد تونستم آدرس محل رو تغییر بدم
Regex x = new Regex("(FILENAME = N')(.*?)(' , SIZE =)");
string s = richTextBox1.Text;
string repl = textBox1.Text;
string Result = x.Replace(s, "$1" + repl + "$3");
richTextBox2.Text = Result;
ریچ تکست شامل کلیه متن های اسکریپته و تکست باکس هم آدرسی که کاربر دستی وارد میکنه
اما مشکل من اینه که اسم دیتابیس و اسم فایل لاگ رو نمیتونم کاری کنم یعنی با کد بالا اسم فایل لاگ و دیتابیس جایگزین ادرسی میشه که کاربر وارد کرده چطوری میتونم کاری کنم که اسم دیتابیس و فایل لاگ تغییر نکنه و ثابت بمونه و فقط آدرس پوشه عوض بشه
C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA
فرض رو هم براین بزاریم که ممکنه آدرس ها یکسان نباشه از من اینه پیشفرض یه کاربر دیگه میاد دیتابیس رو تو یه درایو دیگه میسازه چطوری میشه چنین کارب کرد