PDA

View Full Version : سوال: کپی اطلاعات یک دیتابیس به دیتابیس دیگر با c#



mz6488
شنبه 01 تیر 1392, 10:36 صبح
سلام.دو تا دیتابیس هم شکل دارم یکیش پر و یکی خالی.میخوام اطلاعات چند تا از جداول دیتابیس اولی رو تو دیتابیس دومی تو سریع ترین شکل ممکن بریزم.چجوری این کار رو انجام بدم.تو انجمن گشتم یه چیزایی آورد ولی یه سری هاشون ناقص بودن

hamid_hr
شنبه 01 تیر 1392, 10:57 صبح
رو ديتابيس راست كليك
export
مياي منبع رو ديتابيس پر و مقصرو ديتابيس خالي معرفي ميكني
بعد تيبلا رو مشخص ميكني بعدشم finish
البته دو صورتي كه هر دو ديتابيس رو يك سرور باشن

mz6488
شنبه 01 تیر 1392, 11:07 صبح
رو ديتابيس راست كليك
export
مياي منبع رو ديتابيس پر و مقصرو ديتابيس خالي معرفي ميكني
بعد تيبلا رو مشخص ميكني بعدشم finish
البته دو صورتي كه هر دو ديتابيس رو يك سرور باشن

تو عنوان تاپیکم گفتم میخوام اینو از طریق کدنویسی c# انجام بدم

hamid_hr
شنبه 01 تیر 1392, 11:35 صبح
خب اينطوري كه راحته
مثلا مينويسي
insert into DB1.[dbo].tbl1 select * from db2.dbo.tbl1

mz6488
شنبه 01 تیر 1392, 12:03 عصر
میشه کد کاملش رو تو c# بذارید؟

mz6488
شنبه 01 تیر 1392, 17:21 عصر
کسی نبود؟؟؟خیلی واسم مهمه

mz6488
پنج شنبه 06 تیر 1392, 12:00 عصر
کد زیر رو نوشتم ولی اشکال داره.خواهشا اشکالش رو بهم بگید

SqlCommand cmd2 = new SqlCommand();
cmd2.Connection =new SqlConnection( @"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|\myDB2.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True");
cmd2.Connection.Open();


SqlCommand cmd3 = new SqlCommand();
cmd3.Connection = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|\myDB3.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True");
cmd3.Connection.Open();

string query = "insert into myDB3.[dbo].table1 select * from myDB2.[dbo].table1";
cmd2.CommandText = query;
cmd2.ExecuteNonQuery();
cmd2.Connection.Close();
cmd3.Connection.Close();

hamid_hr
پنج شنبه 06 تیر 1392, 12:13 عصر
ببين اون كوئري رو زماني ميتوني اجرا كني كه با يك كانكشن به هر دو تا ديتابيس متصل شده باشي
برا اينكه تو ميخواي بايد تك تك از ديتابيس اول بخوني تو ديتابيس دوم درج كني

string query = "select * from [dbo].table1";
cmd2.commandtext = query ;
sqldatareader sdr = cmd2.ExecuteReader(System.Data.CommandBehavior.Clo seConnection);
string sqlcmd = "";
while (sdr.read){
sqlcmd += " insert into [dbo].table1 select '" + sdr[0].tostr() + "','" + sdr[1].tostr() + "','" + ... + "','" + sdr[n].tostring() + "'";
}
cmd3.commandtext = sqlcmd ;
cmd3.ExecuteNonQuery();
cmd2.Connection.Close();

cmd3.Connection.Close();