الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

عمل update بين قاعدتين بيانات

بدأه mohamednada في 24 فبراير 2012 · 7 رد · 744 مشاهدة · في ADO.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

انا عامل برنامج و مربوط بقاعدتين بيانات واحده اكسيس والاخرى sql server

عايز اعمل بوتون لما اضغط عليه يعمل update

بمعنى

ان التسجيل الاساسى من البرنامج بيكون فى قاعده البيانات sql

عايز بقى اول ما اضغط على البوتون دا يعمل لووب على السجلات الى فى القاعده السيكول ويقارن بينها وبين الى فى الاكسيس لو موجود خلاص

لكن لو مش موجود فى الاكسيس معنى كده انه سجل جديد

يقوم بتسجيله فى الاكسيس

الملخص

انى عايز فى النهايه السجلات الى اتسجلت حديثا فى قاعده السيكول بضغطه البوتون دا يتم تسجيلها ايضا فى جدول القاعده الاخرى

وشكرا

#2

السلام عليكم ..

هنا مشاركة .. قمنا فيها بتحمل صفحة إكسل في DataTable عن طريق OleDbConnection (و اخواته ) .. و حفظها أو دمجها في جدول sql server ... حاول الاستفادة منها ..

لا إله إلا الله ... محمد رسول الله

لو كانت مشاركتي مفيدة و تريد تشجيعي على المزيد من العطاء , فضلا قم بتقييم المشاركة

المعرًف القديم : houssam11350_11350

من مواضيعي : ArabGenCode : مولد كود و إجراءات مخزنة و واجهات لجداول سيكوال سيرفر

#3

اخى انا لم استطيع فهم السابق بشكل جيد وحملت البرنامج لكن مشتغلش عندى

عموما انا جربت كود وتقريبا ناقصه جزء صغير ليكون صحيح

comd.CommandText = "delete * from offline"

comd.ExecuteNonQuery()

' MsgBox(h & "deleted")

Dim result As Object

cmd.CommandText = "select count(*) from books"

result = cmd.ExecuteScalar

'MsgBox(result & "File")

Dim i As Integer

For i = 1 To result

cmd.CommandText = "select row(i) from books"

dr = cmd.ExecuteReader

dr.Read()

Dim f1, f2 As String

f1 = "'" & dr("bookname") & "',"

f2 = "'" & dr("bookid") & "'"

s = "insert into offline (bookname,bookid)values(" & f1 & f2 & ") "

comd.CommandText = s

h = comd.ExecuteNonQuery

i = i + 1

dr.Close()

Next

MsgBox(h & "saved")

انا هنا بقوم بمسح الجدول فى قاعده البيانات وبعدين اعمل لوب على سجلات القاعده التانيه واستدعيها واسجلها فى القاعده الاولى

ولكن المشكله فى اللووب مش بيتنقل للسجل التالى وبس بيسجل اول سجل اكتر من مره

ملحوظه بس هناك خطأ فى هذا الكود وهو select row (i)

هذا خطا

#4

السلام عليكم ...

  1. أنت بحاجة لــ while لعمل حلقة على كل سجلات الــ Reader أي :
     while (reader.Read())

    رابط

  2. هذه محاولة أخرى مني : حيث Connection و Connect2 هما إتصالان , واحد للقاعدة المصدر و الثاني للقاعدة الهدف :
    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        	Dim connection As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source=" + Application.StartupPath + "\DB.mdb" + ";Persist Security Info=False")
        	Dim connection2 As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source=" + Application.StartupPath + "\DB.mdb" + ";Persist Security Info=False")
        	connection.Open()
        	connection2.Open()
        	Dim comd As New OleDbCommand
        	comd.Connection = connection
        	comd.CommandText = "delete * from offline"
        	comd.ExecuteNonQuery()
        	Dim adapter As New OleDbDataAdapter("select * from books", connection2)
        	Dim ds As New DataSet
        	adapter.Fill(ds)
    
        	For Each dr As DataRow In ds.Tables(0).Rows
            	Dim f1, f2 As String
            	f1 = "'" & dr("bookname") & "',"
            	f2 = "'" & dr("bookid") & "'"
            	Dim s = "insert into offline (bookname,bookid)values(" & f1 & f2 & ") "
            	comd.CommandText = s
            	Dim h = comd.ExecuteNonQuery
            	MsgBox(h & "saved")
        	Next
    	End Sub

لا إله إلا الله ... محمد رسول الله

لو كانت مشاركتي مفيدة و تريد تشجيعي على المزيد من العطاء , فضلا قم بتقييم المشاركة

المعرًف القديم : houssam11350_11350

من مواضيعي : ArabGenCode : مولد كود و إجراءات مخزنة و واجهات لجداول سيكوال سيرفر

#5

بارك الله فيك يا اخى

الكود تمام ولكنى عدلت فيه لانه لاينجح بهذه الصوره تماما

اليك الكود

فى الفورم لوود

cn.ConnectionString = "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;password=test;Initial Catalog=bookworm;Data Source=192.168.1.100"

cn.Open()

cmd.Connection = cn

cmd.CommandType = CommandType.Text

cmd.CommandText = "select * from books"

ad.SelectCommand = cmd

ad.Fill(dbs, "books")

tcost = dbs.Tables("books")

con.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=bookworm.mdb;Persist Security Info=False"

con.Open()

comd.Connection = con

comd.CommandType = CommandType.Text

الكود تحت المفتاح

بعد مسح الجدول

For Each dr As DataRow In dbs.Tables(0).Rows

Dim f1, f2 As String

f1 = "'" & dr("bookname") & "',"

f2 = "'" & dr("bookid") & "'"

Dim s = "insert into offline (bookname,bookid)values(" & f1 & f2 & ") "

comd.CommandText = s

Dim h = comd.ExecuteNonQuery

Next

MsgBox(h & "saved")

End Sub

ولكن عند التطبيق البرنامج مبيعملش up date للسجلات من قاعده للاخرى الا بغلق البرنامج وفتحه مره اخرى بعد حفظ السجلات فى القاعده الرئيسيه ثم بعد ذلك ضغط المفتاح

ولكنى عايز السجلات تتنقل بمجرد الضغط فقط

وشكرا اخى لمجهودك

#6

ممكن ارسال هذا الكود جرب

Dim connection As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source=" + Application.StartupPath + "\DBto.mdb" + ";Persist Security Info=False")    
Dim comd As New OleDbCommand
connection.Open()   
 comd.Connection = connection      
Dim s = "insert into offline (bookname,bookid) SELECT bookname , bookid FROM " & Application.StartupPath + "\DBFrom.mdb" & ".books;"
comd.CommandText = s
 comd.ExecuteNonQuery
connection.close()

تعتمد علي جملة سليكت من قاعد بيانات اخري

#7

اخى الكريم انا قاعده البيانات الى باخد منها البيانات من نوع سيكول والى بسجل فيها من نوع اكسيس

الاتنين مش اكسيس

كيف يكون الكود فى جمله سليكت فى هذه الحاله ؟

#8

انظر الرايط

الرابط الخاص بي

مواضيع مشابهة