PDA

View Full Version : update sql table from access database



m.khani_121
چهارشنبه 25 مرداد 1391, 09:21 صبح
سلام دوستان . من 2تا برنامه دارم که یکیش دیتابیسش اکسس هست و اون یکی sql و این 2تا برنامه بهم مربوط هستن .

من 5تا از table access رو import کردم توی sql . حالا میخوام کاربر اگه رفت توی برنامه ای که با اکسس هست و تغییری انجام شد ، table sql هم update بشه ! مثلا با یه دکمه ی بروز رسانی اون table هایی که تو sql هست با تغییرات اکسس match بشه .

ممنون پیشاپیش .

veniz2008
چهارشنبه 25 مرداد 1391, 11:18 صبح
سلام. یه خورده گنگ توضیح دادی دوست عزیز. یه برنامه داری که شامل دو بانک sql و اکسس هست؟ یا نه دو تا برنامه جدا از هم داری که یکیشون sql داره و اون یکی اکسس؟. اگر دومیه به چه صورت به هم ربطشون دادی؟

m.khani_121
چهارشنبه 25 مرداد 1391, 12:51 عصر
نه 2 تا برنامه جدا که یکیش Sql و اون یکی اکسس . من اومدم تو sql چند تا از جدول های اکسس رو import کردم تو دیتابیس Sql . حالا میخوام اگه تغییری تو بانک اکسس شد همون جدول ها که تو Sql ریختم تغییر توش اعمال بشه .

veniz2008
چهارشنبه 25 مرداد 1391, 14:59 عصر
یه ایده ای که به ذهنم میرسه اینه: برای هر عمل متناظر در اکسس یک تابع برای sql هم بنویسید. در خط پایانی مربوط به دستورات اکسس، اون تابعی رو که از قبل نوشتی صدا بزن. مثلا برای درج در اکسس یک تابع برای درج در sql بنویس. در پایان عملیات مربوط به درج در اکسس اون تابع مربوط به sql رو صدا بزن.

m.khani_121
پنج شنبه 26 مرداد 1391, 09:05 صبح
ممنون دوست عزیز . ولی من سورس برنامه اکسس رو ندارم . تو خود برنامم که با sql هست میتونم دیتابیس اکسس رو بهش بشناسونمش و بعد دستور آپدیت تو sql بدم ؟؟

m.khani_121
پنج شنبه 26 مرداد 1391, 09:26 صبح
دوستان یه راه حل پیدا کردم از رفرنس های خارجی ولی چیزی نفهمیدم . شما ببینید به درد میخوره ؟؟


Using dt As New DataTable()
Using conn As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:/Documents and Settings/Administrator.RIEL/My Documents/Visual Studio 2008/Projects/WindowsApplication2/WindowsApplication2/mydb.mdb;Persist Security Info=True")
'Using cmd As New OleDbCommand(sql, conn)
Using cmd As New OleDbCommand([String].Format("select * from {0}", "Table1"), conn)
Using adapter As New OleDbDataAdapter(cmd)
cmd.CommandType = CommandType.TableDirect
cmd.Connection.Open()
adapter.SelectCommand.CommandTimeout = 240
adapter.Fill(dt)
adapter.Dispose()
End Using
End Using
End Using

Using conn2 As New SqlConnection("Data Source=SYS-DOT-NET-01;User ID=sa;Password=sql;Initial Catalog=dcc")
conn2.Open()
Using copy As New SqlBulkCopy(conn2)
copy.DestinationTableName = "demo"
copy.BatchSize = 1000
copy.BulkCopyTimeout = 240
copy.WriteToServer(dt)
copy.NotifyAfter = 1000
End Using
End Using
End Using

ممنون

m.khani_121
جمعه 27 مرداد 1391, 10:53 صبح
دوستان کسی نمیتونه منا کمک کنه ؟؟