PDA

View Full Version : کمک درباره کپی یک جدول از Database 1 به جدولی در Database 2



zeho19
پنج شنبه 24 خرداد 1386, 20:46 عصر
با سلام

لطفاً منو در رابطه با کپی یک جدول از Database 1 به جدولی در Database 2 راهنمایی کنید..
اگه کد بزارید ممنون میشم هرچی میگردم پیدا نمی کنم

marzban
جمعه 25 خرداد 1386, 00:03 صبح
خوب می تونید اطلاعات رو از یک جدول بخونید و توی یک جدول دیگه بریزید
قطعه کد را برای شما میزارم کمی باید کد بهش اضافه کنید
فرض را برای بانک access گذاشتم


Dim con As New OleDb.OleDbConnection
con.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source='yourdb.mdb'"
Dim cmd As New OleDb.OleDbCommand
cmd.CommandText = "insert into table2 select * from table1"
cmd.CommandType = CommandType.Text
cmd.Connection = con
con.Open()
cmd.ExecuteNonQuery()
con.Close()


توی این حالت شرط اینه که فیلد های جدول 1 و جدول 2 با هم برایر باشند و ترتیب ورود فیلدها در ساخت دو جدول رعایت شده باشند.
در صورتی که فیلدهای جدول شماره 1 با فیلدهای جدول شماره 2 یکسان نبودند یعنی table1 کمتر بود اون وقت شما باید در Select * را تغییر دهید و نام فیلدها رو هم اضافه کنید.

marzban
جمعه 25 خرداد 1386, 00:23 صبح
اگه دو تا بانک مجزا هستند می تونی مثل زیر کد نویسی کنی


Dim con1 As New OleDb.OleDbConnection
Dim con2 As New OleDb.OleDbConnection
Dim cmd1 As New OleDb.OleDbCommand
Dim cmd2 As New OleDb.OleDbCommand
con1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source='db1.mdb'"
con2.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source='db2.mdb'"
Dim dr As OleDb.OleDbDataReader
cmd1.CommandText = "select field1_table1,field2_table1 from table1"
cmd1.CommandType = CommandType.Text
cmd2.CommandType = CommandType.Text
cmd1.Connection = con1
cmd2.Connection = con2
con1.Open()
con2.Open()
dr = cmd1.ExecuteReader()
While dr.Read
cmd2.CommandText = "insert into table2(field1_table2,field2_table2) Values(" + dr("field1_table1").ToString + ",'" + dr("field2_table1") + "')"
cmd2.ExecuteNonQuery()
End While
dr.Close()
con1.Close()
con1.Close()

تو این مثال فرض شده که field1 در هر دو جدول از نوع number و field2 در هر دو جدول از نوع text هستند.
در این نوع ورود اطلاعات باید دقت داشته باشی که مقادیر هم نوع را به هم مقدار دهی کنی در غیر این صورت با خطا روبرو خواهی شد.
با تشکر مرزبان

zeho19
جمعه 25 خرداد 1386, 14:18 عصر
آقای marzban مرسی از راهنمایی شما

اگه بشه داخل SQL بگی ممنون میشم .

ice007
شنبه 26 خرداد 1386, 09:24 صبح
تو sql ‌روی دیتابیست راست کلیک کن و داخل منوها از import یا export استفاده کن .

reza_rad
شنبه 26 خرداد 1386, 09:49 صبح
تو sql ‌روی دیتابیست راست کلیک کن و داخل منوها از import یا export استفاده کن .


از SSIS هم می تونی استفاده کنی:
http://barnamenevis.org/forum/showthread.php?t=64650

zeho19
شنبه 26 خرداد 1386, 13:21 عصر
با سلام
مرسی از پاسخ ها

اما من داخل برنامه VB.NET 2005 می خوام این کارو بکنم و اگر بشه محدود کنم و بگم مثلاً ستون 1 و ستون 2 رو کپی کنه به ستون 3 و 4

کد بالا خیلی بدرد بخور است ولی SQL نیست