السلام عليكم
اريد نقل البيانات من جدول داخل قاعدة بيانات الى جدول اخر فى قاعدة بيانات اخري .
مع العلم قاعدة البيانات والجدول ... هو بنفس اسم الجدول ونفس اسم قاعدة البيانات .
وشكرا
السلام عليكم و رحمة الله و بركاته
ينقل إلى القسم المناسب
بالنسبة لسؤالك ، تضع بيانات الجدول المراد نقله في DataTable ثم بواسطة حلقة for each ....... next تنقل الصفوف إلى الجدول الموجود في قاعدة البيانات الثانية بواسطة insert into ...........
السلام عليكم و رحمة الله و بركاته
السلام عليكم
شكرا اخي وبارك الله فيك .
هذا هو كودي ولاكنه يقوم بنقل السجل الاول فقط اكثر من مره .
حيث ان con هى القاعدة الاولة والجدول اسمه tabel2 .
وان conn هى القاعدة الثانية والجول اسمه tabel2
Dim s As String = "select * from tabel2"
Dim ad1 As New OleDbDataAdapter(s, Con)
Dim ds1 As New DataSet()
ds1.Clear()
ad1.Fill(ds1, "tabel2")
Dim ta1 As DataTable
Dim rs1 As DataRow
Dim i As Integer
ta1 = ds1.Tables("tabel2")
Dim add As String = "insert into tabel2 (auno,no1,no2,na1,no_s,dat1,con1,val_s,val1,mem1) values (@p,@p1,@p2,@p3,@p4,@p5,@p6,@p7,@p8,@p9) "
Dim p As New OleDbCommand(add, Conn)
For each i = 0 To ta1.Rows.Count - 1
Update()
rs1 = ta1.Rows(i)
p.Parameters.AddWithValue("@p", rs1("auno"))
' et.Parameters.Add("@e", rs1("item_no"))
p.Parameters.AddWithValue("@p1", rs1("no1"))
p.Parameters.AddWithValue("@p2", rs1("no2"))
p.Parameters.AddWithValue("@p3", rs1("na1"))
p.Parameters.AddWithValue("@p4", rs1("no_s"))
p.Parameters.AddWithValue("@p5", rs1("dat1"))
p.Parameters.AddWithValue("@p6", rs1("con1"))
p.Parameters.AddWithValue("@p7", rs1("val_s"))
p.Parameters.AddWithValue("@p8", rs1("val1"))
p.Parameters.AddWithValue("@p9", rs1.Table.Rows(i)("mem1"))
p.ExecuteNonQuery()
Update()
Next
Update()
p.Dispose()
ds1.Dispose()
MsgBox("End Move Database")
.
منقول
دالة CopyTableToDatabase لنسخ بيانات جدول من قاعدة بيانات إلى أخرى بشرط وجود نفس الجدول والحقول بقاعدة البيانات الثانية
كود :
Private Function CopyTableToDatabase(ByVal tableName As String, ByVal fromDatabaseName As String, ByVal fromDatabasePassword As String, ByVal toDatabaseName As String, ByVal toDatabasePassword As String, Optional ByVal Access2007 As Boolean = False) As Boolean
Try
Dim provider As String = IIf(Access2007, "Microsoft.ACE.OLEDB.12.0", "Microsoft.Jet.OLEDB.4.0")
Dim conFrom As New OleDb.OleDbConnection("Provider=" & provider & ";Data Source=" & fromDatabaseName & ";Jet OLEDB:Database Password=" & fromDatabasePassword & ";")
Dim conTo As New OleDb.OleDbConnection("Provider=" & provider & ";Data Source=" & toDatabaseName & ";Jet OLEDB:Database Password=" & toDatabasePassword & ";")
conTo.Open()
Dim comTo As New OleDb.OleDbCommand("Delete from " & tableName, conTo)
comTo.ExecuteNonQuery()
conTo.Close()
conFrom.Open()
Dim comFrom As New OleDb.OleDbCommand("Insert into [" & toDatabaseName & ";PWD=" & IIf(toDatabasePassword = "", " ", toDatabasePassword) & "]." & tableName & " SELECT * From " & tableName, conFrom)
comFrom.ExecuteNonQuery()
conFrom.Close()
Return True
Catch ex As Exception
MsgBox(ex.Message)
Return False
End Try
End Function
طريقة استخدامها
كود :
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'If CopyTableToDatabase("Table1", Application.StartupPath & "\db1.mdb", "", Application.StartupPath & "\db2.mdb", "", False) Then
If CopyTableToDatabase("Table1", Application.StartupPath & "\Database1.accdb", "", Application.StartupPath & "\Database1.accdb", "", True) Then
MsgBox("تم النسخ بنجاح")
Else
MsgBox("فشلت عملية النسخ")
End If
End Sub
السلام عليكم ..
بارك الله فيكم جميعاً ماقصرتوا والله .. جزاكم الله خير .
مع اني استخدمت كود اخر باستخدام داتا جريد ثم عمل حلقة ونقل كل صف الى متغير ومن ثم اضافته .
للعلم : ربي يحفظكم والله انكم محترفين ،، وانا شخصياً استفدة جداً من طريقتكم واسلوبكم فى البرمجة .
شكرا لكم .